我有一个SQL查询:
INSERT INTO logins (name, password,roleId,email,phone)
SELECT 'login', 'password', 1, 'mail@gmail.com', '375291234567'
FROM (SELECT count(*) FROM logins as l4) as l3
WHERE NOT EXISTS (
SELECT * FROM logins as l2
WHERE l2.name='login')
如果我在具有相同参数的不同线程中执行它,是否可能会添加2个(或更多)记录?如果这是真的,那我怎么能阻止它呢?
我需要一个多服务器的答案。
答案 0 :(得分:1)
使用Merge语句而不是insert。那么你将始终只有一个条目。 查看此详细信息的链接:http://blog.sqlauthority.com/2008/08/28/sql-server-2008-introduction-to-merge-statement-one-statement-for-insert-update-delete/