仅当SQL Server中尚不存在记录时,如何添加记录?

时间:2010-04-28 14:11:09

标签: c# sql-server

我在C#中有一个带有Sql-server数据库的项目 在该数据库中,我有一个名为'Process'的表和名为'process_name','Full_Name'和'Version'的列(所有类型:nvarchar(50))。
我想编写一个将添加新进程的查询,只有在表中不存在时才会这样 我怎么能这样做?
非常感谢,

3 个答案:

答案 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