我在C#中有一个带有Sql-server数据库的项目
在该数据库中,我有一个名为'Process'的表和名为'process_name','Full_Name'和'Version'的列(所有类型:nvarchar(50))。
我想编写一个将添加新进程的查询,只有在表中不存在时才会这样
我怎么能这样做?
非常感谢,
答案 0 :(得分:12)
IF NOT EXISTS (SELECT * FROM Process WHERE process_name = 'xxx')
INSERT INTO Process (process_name, Full_Name, Version)
VALUES ('xxx', 'yyy', 'zzz')
答案 1 :(得分:3)
您可能对SQL Server 2008中新增的MERGE命令感兴趣。
http://technet.microsoft.com/en-us/library/bb510625.aspx
这允许您插入不存在的行或更新在一个语句中存在的记录。
答案 2 :(得分:1)
假设process_name是您要检查的PK:
IF NOT EXISTS(SELECT 1 FROM Process WHERE process_name = @ProcessName)
BEGIN
-- Process does not already exist, so INSERT
END