执行插入语句前,先做判断.if exists(select 1 from [目标表] where [主键字段]=[主键值]) begin -- 若主键值已存在则返回错误,写法可依具体情况而定. print '主键值: '+[主键值]+'已存在于目标表,无法插入.' end else begin -- 若主键值不存在则执行插入语句. insert into [目标表]([字段列表]) values([值列表]) end
如何获取错误信息再进行处理呢? --> 程序中用try..catch ..
版主,如何获取错误信息里那个主键的值呢?不通过exists等方法从原数据库中检索对比
以C#为例,try..catch..的catch段中可获取Exception.Message的值即是详细的错误信息, 如下格式: Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]). The statement has been terminated. 可以通过字符串的截取来获取该主键值.
以C#为例,try..catch..的catch段中可获取Exception.Message的值即是详细的错误信息, 如下格式: Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]). The statement has been terminated. 可以通过字符串的截取来获取该主键值. 谢谢版主!帮我三次了,还想求教一个问题,如何快速把select的内容放到List<T>中呢?
begin
-- 若主键值已存在则返回错误,写法可依具体情况而定.
print '主键值: '+[主键值]+'已存在于目标表,无法插入.'
end
else
begin
-- 若主键值不存在则执行插入语句.
insert into [目标表]([字段列表]) values([值列表])
end
--> 程序中用try..catch ..
如下格式:
Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]).
The statement has been terminated.
可以通过字符串的截取来获取该主键值.
如下格式:
Violation of PRIMARY KEY constraint '[主键约束名]'. Cannot insert duplicate key in object '[表名]'. The duplicate key value is ([无法插入的主键值]).
The statement has been terminated.
可以通过字符串的截取来获取该主键值.
谢谢版主!帮我三次了,还想求教一个问题,如何快速把select的内容放到List<T>中呢?
datatable不一样的用么?