-1

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

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

4

1 回答 1

1

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

于 2013-06-20T15:09:25.350 回答