fro*_*die 18 sql sql-server insert not-exists
我想将插入查询与"不存在的地方"结合起来,以免违反PK约束.但是,如下所示的语法给我一个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)
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?
(通常,您可以将插入与where子句组合使用吗?)
ber*_*d_k 23
INSERT INTO myTable(columns...)
Select values...
WHERE NOT EXISTS
(SELECT *
FROM myTable
WHERE pk_part1 = value1,
AND pk_part2 = value2)
Run Code Online (Sandbox Code Playgroud)
编辑: 阅读martins链接后,如果承认,最好的解决方案是:
BEGIN TRY
INSERT INTO myTable(columns...)
values( values...)
END TRY
BEGIN CATCH
IF ERROR_NUMBER() <> 2627
RAISERROR etc
END CATCH;
Run Code Online (Sandbox Code Playgroud)