我想将插入查询与“不存在的地方”组合起来,以免违反PK约束。但是,如下所示的语法给我一个Incorrect syntax near the keyword 'WHERE'错误-
Incorrect syntax near the keyword 'WHERE'
INSERT INTO myTable(columns...) VALUES(values...) WHERE NOT EXISTS (SELECT * FROM myTable WHERE pk_part1 = value1, AND pk_part2 = value2)
我该怎么做?
(通常,您可以将插入内容与where子句结合使用吗?)
INSERT INTO myTable(columns...) Select values... WHERE NOT EXISTS (SELECT * FROM myTable WHERE pk_part1 = value1, AND pk_part2 = value2)
编辑: 阅读马丁斯链接后,如果承认,最好的解决方案是:
BEGIN TRY INSERT INTO myTable(columns...) values( values...) END TRY BEGIN CATCH IF ERROR_NUMBER() <> 2627 RAISERROR etc END CATCH;