多线程SQL查询

时间:2013-06-20 15:04:06

标签: sql sql-server multithreading

我有一个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个(或更多)记录?如果这是真的,那我怎么能阻止它呢?

我需要一个多服务器的答案。

1 个答案:

答案 0 :(得分:1)

使用Merge语句而不是insert。那么你将始终只有一个条目。 查看此详细信息的链接:http://blog.sqlauthority.com/2008/08/28/sql-server-2008-introduction-to-merge-statement-one-statement-for-insert-update-delete/