1
drop table #temp1
drop table #temp2

create table #temp1 (id int identity, A int, B int)
create table #temp2 (id int identity, A int, B int)

insert into #temp1 values (20, 1001)
insert into #temp1 values (20, 1001)
insert into #temp1 values (30, 1001)

insert into #temp2 values (20, 1001)

SQL を使用して、#temp1 の 2 行目と 3 行目が #temp2 に存在しないことを確認する必要があります。

それを見つける方法は?

4

1 に答える 1

0

EXCEPT次の演算子を使用できます。

SELECT id, a, b
FROM #temp1

EXCEPT

SELECT id, a, b
FROM #temp2 ;

非常に深刻なことを考慮する必要があります。列のid番号は自動的に取得されるため、値はありません。実際の例では、おそらく列にUNIQUE制約があるか、または として定義された他の組み合わせがあるでしょう。したがって、上記の例は有効ではありません。1 番目と 3 番目の2 行だけが挿入されます。2 番目は、1 番目のものと同一として拒否されます。(a, b)PRIMARY KEYtable1

于 2013-02-09T14:16:49.680 に答える