1

SQL の各部分をテストしたところ、正常に動作しました。

ただし、私の句に何か問題がありWHEREます..VS 2012でブレークポイントを設定する詳細が得られません...

INSERTMS SQL SERVER を使用したサブクエリを含むステートメントのコードはどのようにすべきですか?

INSERT INTO Emails (email, insertDate) 
VALUES (@Email, @DateToday) 
WHERE NOT EXISTS (SELECT Emails.email 
                  FROM Emails WHERE Emails.email = @Email);
4

4 に答える 4

5
INSERT INTO Emails (email, insertDate) 
SELECT @Email, @DateToday
WHERE NOT EXISTS (SELECT Emails.email 
                  FROM Emails WHERE Emails.email = @Email);
于 2013-08-28T16:19:24.480 に答える
2

これはうまくいきます

INSERT INTO Emails (email, insertDate) 
SELECT @Email, @DateToday
WHERE NOT EXISTS (SELECT Emails.email 
                  FROM Emails WHERE Emails.email = @Email)

しかし、より良い解決策は、メール列の一意のインデックスかもしれません

于 2013-08-28T16:20:38.453 に答える
2

次のように使用してみてください:

"INSERT INTO Emails (email, insertDate) VALUES ('@Email', '@DateToday') WHERE NOT EXISTS (SELECT Emails.email FROM Emails WHERE Emails.email = '@Email');"
于 2013-08-28T16:20:51.847 に答える
0
INSERT INTO Emails (email, insertDate) 
SELECT Email, DateToday
WHERE NOT EXISTS (SELECT Emails.email 
                  FROM Emails WHERE Emails.email = Email)

null でない列または一意のインデックスemailとして設定されます。

于 2013-08-28T16:25:33.583 に答える