带有触发更新查询的触发器的SQLBulk Copy
我使用带有触发更新查询的触发器的SQLBulk Copy,sql,triggers,sqlbulkcopy,Sql,Triggers,Sqlbulkcopy,我使用SQLBulkCopy将记录从excel工作表插入SQL 代码对我来说运行良好 但我必须触发基于触发器的插入 在触发器中,我根据插入的在另一个表中插入记录 这也很好 但是,如果我检查另一个表已经有了我试图插入和更新的记录,那么这对我不起作用 我怎样才能解决我的问题 如果您使用的是SQL server 2008,请在触发器中使用Merge语句 例如: MERGE INTO dbo.Table1 AS t USING dbo.inserted AS i ON t.id= i.i
SQLBulkCopy
将记录从excel工作表插入SQL
代码对我来说运行良好
但我必须触发基于触发器的插入
在触发器中,我根据插入的在另一个表中插入记录
这也很好
但是,如果我检查另一个表已经有了我试图插入和更新的记录,那么这对我不起作用
我怎样才能解决我的问题 如果您使用的是SQL server 2008,请在触发器中使用Merge语句
例如:
MERGE INTO dbo.Table1 AS t
USING dbo.inserted AS i
ON t.id= i.id
WHEN MATCHED THEN
UPDATE SET
t.col1= i.col1,
t.col2= i.col2
WHEN NOT MATCHED THEN
INSERT (col1, col2)
VALUES (i.col1, i.col2)
如果您使用的是SQL server 2008,请在触发器中使用Merge语句
例如:
MERGE INTO dbo.Table1 AS t
USING dbo.inserted AS i
ON t.id= i.id
WHEN MATCHED THEN
UPDATE SET
t.col1= i.col1,
t.col2= i.col2
WHEN NOT MATCHED THEN
INSERT (col1, col2)
VALUES (i.col1, i.col2)
---------------------------------------------------------MERGE语句多次尝试更新或删除同一行。当目标行与多个源行匹配时,会发生这种情况。MERGE语句不能多次更新/删除目标表的同一行。优化ON子句以确保目标行最多与一个源行匹配,或使用GROUP BY子句对源行进行分组。----------------------------好的------------------我认为您没有使用正确的键来匹配和更新表。实际上,我发现此错误是由于两个表中都没有主键。对于Merge语句,主键是must,我必须匹配正确的键,但这两个都不是主键---------------------------------MERGE语句多次尝试更新或删除同一行。当目标行与多个源行匹配时,会发生这种情况。MERGE语句不能多次更新/删除目标表的同一行。优化ON子句以确保目标行最多与一个源行匹配,或使用GROUP BY子句对源行进行分组。----------------------------好的------------------我认为您没有使用正确的键来匹配和更新表。实际上,我发现这个错误是因为两个表中都没有主键。对于Merge语句,主键是must,我必须匹配正确的键,但这两个都不是主键