2010-04-28 4 views
4

나는 SQL 서버 데이터베이스와 함께 C# 프로젝트를 가지고있다.
해당 데이터베이스에서 'Process'라는 테이블과 'process_name', 'Full_Name'및 'Version'(모두 nvarchar (50)) 열이 있습니다.
아직 테이블에없는 경우에만 새 프로세스를 추가 할 쿼리를 작성하고 싶습니다.
어떻게하면됩니까?
많은 감사,SQL Server에 레코드가없는 경우에만 레코드를 추가하려면 어떻게합니까?

+0

프로세스가 이미 입력되었는지 결정하는 것은 무엇입니까? process_name? – froadie

+0

예, 이것은 PK – menacheb

답변

12
IF NOT EXISTS (SELECT * FROM Process WHERE process_name = 'xxx') 
INSERT INTO Process (process_name, Full_Name, Version) 
VALUES ('xxx', 'yyy', 'zzz') 
+0

입니다. 고맙습니다. 훌륭한 대답 – menacheb

1

가정 process_name은 당신이 검사 할 PK입니다 :

IF NOT EXISTS(SELECT 1 FROM Process WHERE process_name = @ProcessName) 
    BEGIN 
     -- Process does not already exist, so INSERT 
    END 
3

당신은 SQL Server에 대한 새로운 병합 명령에 관심이있을 수는 2008 년

http://technet.microsoft.com/en-us/library/bb510625.aspx

이렇게하면 존재하지 않는 행을 삽입하거나 존재하는 레코드를 하나의 sta에 모두 업데이트 할 수 있습니다 테멘트.

+0

+1 나를 때려 눕히세요. – ParmesanCodice

관련 문제