Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlDataAdapter和数据库的事务日志已满_C#_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

C# SqlDataAdapter和数据库的事务日志已满

C# SqlDataAdapter和数据库的事务日志已满,c#,sql-server,sql-server-2008-r2,C#,Sql Server,Sql Server 2008 R2,我正在尝试更新/插入大量数据到数据库中 我正在使用以下代码: using (SqlCommand command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = storedProcedureName; command

我正在尝试更新/插入大量数据到数据库中

我正在使用以下代码:

using (SqlCommand command = connection.CreateCommand())
            {
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = storedProcedureName;
                command.UpdatedRowSource = UpdateRowSource.None;

                foreach (SqlParameter sqlParameter in sqlParameters)
                    command.Parameters.Add(sqlParameter);


                var adapter = new SqlDataAdapter();
                adapter.InsertCommand = command;
                adapter.UpdateBatchSize = batchSize;

                return adapter.Update(table);
            }
我正在使用以下存储过程:

    @shareAdGroupId int,
@groupPermissionName varchar(100)

AS
BEGIN transaction
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.@permissionTypeName

    declare @permissionId int
    EXEC  [dbo].[PROC_UPSERT_PERMISSION] @permissionName = @groupPermissionName,  @permissionId = @permissionId OUTPUT


    SET NOCOUNT ON;
        BEGIN TRY
        begin
            INSERT INTO [dbo].SHARE_AD_GROUP_PERMISSION
           (SHARE_AD_GROUP_ID,PERMISSION_ID)
        VALUES
           (@shareAdGroupId,@permissionId)
        end
    END TRY
    BEGIN CATCH
        --RETURN ERROR_MESSAGE() 
    END CATCH
commit transaction
插入/更新随机数记录后,我得到错误:

System.Data.SqlClient.SqlException:数据库“dbName”的事务日志已满。要了解日志中的空间无法重用的原因,请参阅sys.databases中的log\u reuse\u wait\u desc列

我知道这个问题已经被问了很多次,但是我搜索了一下,看看我更新/插入的方式是否导致了这个问题

由于我不是DBA,并且我对db服务器没有任何权限,因此我无法修改备份日志,但是我并不真正关心问题是否仅限于此。那么这就要由dba来解决了

我的问题是,在编码部分,我是否做错了什么,我能以某种方式改进吗


谢谢

不,此错误只能在DBA端修复,因此没有权限您无法真正执行任何操作。磁盘所在的卷空间不足,日志文件已达到其配额,或者日志文件的自动增长设置不正确。

数据库的恢复模式是什么?如果你有一个DBA,你应该让他研究一下。恢复模型设置为FULL,但我无权更改它,也无权收缩数据库,如果唯一的解决方案是修改它,那么我真的不在乎,因为这是由DBA来管理的。我只关心编码部分是的,这是DBA的问题,他们需要在这个数据库上运行事务日志备份来清除它。然后,可以根据具体情况缩小文件或扩展磁盘。