2016-05-19 8 views
-1

で "NOT IN" を使用して存在していない場合はSQL-Serverのテーブルに "NOT IN" を使用して存在していない場合、私は値を挿入することができない値を挿入することはできません:は、以下のクエリを実行することによりSQL-Serverテーブル

CREATE TABLE tbl (Name VARCHAR(20)) 
GO 

INSERT INTO tbl 
VALUES ('bk'), ('ck'), ('kk') 
GO 

CREATE TABLE #tt (Name VARCHAR(50)) 
GO 

INSERT INTO #tt 
VALUES ('jk'), ('dk'), ('kk') 
GO 


--Script 1 
INSERT INTO tbl (Name) 
    SELECT Name 
    FROM #tt t 
    WHERE t.name NOT IN (SELECT Name FROM tbl) 


-- Script 2 
INSERT INTO tbl (Name) 
    SELECT DISTINCT t.name 
    FROM #tt t 
    LEFT JOIN tbl t1 ON t.name=t1.name 
    WHERE t1.name IS NULL 
+0

スクリプト1はゼロレコードを挿入しますが、スクリプト2は意図したとおりに2レコードを挿入します。 –

+0

事前にお返事ありがとうございます –

+0

実際の結果と現在の結果を適切にご記入ください。 –

答えて

関連する問題