我正在尝试将大量数据更新/插入数据库
我正在使用以下代码:
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_reuse_wait_desc 列
我知道这个问题已经被问过很多次了,但是我搜索了一下我更新/插入的方式是否导致了这个问题。
由于我不是 DBA,而且我对 db 服务器没有任何权限,因此我无法修改备份日志,但我并不关心问题是否仅此而已。然后这取决于dba来解决它。
我的问题是,在编码部分,我做错了什么,我能以某种方式改进吗?
谢谢