我在 SQL Server 中有一个 SP,它每分钟运行数百次,需要根据数据库检查传入流量。目前它执行以下操作
INSERT INTO table
SELECT @value1,@value2 WHERE NOT EXISTS
(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2);
但是,我也可以一起去
IF NOT EXISTS(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2)
INSERT INTO table (value1,value2) VALUES (@value1,@value2);
哪个会更快?我觉得它们之间没有太大区别,但从历史上看,我不太擅长 TSQL ... =/
更新:哎呀...表示 EXISTS 使用超过 1 个值来查找记录是否存在,因此唯一约束不起作用。编辑示例以反映...