1

我测试了 SQL 的每个部分,它工作正常。

但是,我的WHERE条款有问题..在 VS 2012 中设置断点并没有得到太多细节...

这应该如何成为INSERT使用 MS 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)

它将工作设置email为非空列唯一索引

于 2013-08-28T16:25:33.583 回答