我在表格中有3列,我需要在插入新行之前检查电子邮件字段,因此如果电子邮件存在,则不应插入该行。我是否必须通过2个查询才能实现这一目标,例如首先检查:
Select count(*) FROM PRODUCT WHERE email = @email
然后运行插入
Insert INTO PRODUCT (....) VALUES (....)
或者有更好的方法来实现这一目标,
任何建议或意见将不胜感激。
由于
答案 0 :(得分:3)
您可以使用INSERT
语句检查条件,只插入一些内容(如果它尚不存在):
IF NOT EXISTS (SELECT * FROM dbo.Product WHERE email = @email)
INSERT INTO dbo.Product(list of columns)
VALUES(list of values)
答案 1 :(得分:1)
如marc_s
所述,您可以使用条件插入。另一方面,在您的电子邮件列中使用唯一约束也可能非常有用!
想想在没有应用程序的情况下插入数据的可能性。没有规则可以避免使用同一封电子邮件!
CREATE TABLE Product
(
xxx int NOT NULL,
xxx xxx xxx,
UNIQUE (email)
)
只需google alter / create表格unique constraints!