を使用して削除し、私はいくつかの行を削除するには、このクエリを使用します。MSSQLは、行コンストラクタMySQLで
DELETE
FROM test
WHERE (id1, id2) IN ((1, 1), (2,1), (3,1))
*複合PK(ID1、ID2)このクエリは文句を言わないMsSQLが上で動作
。誰もが、これは動作するはずです私にMsSQLが
を使用して削除し、私はいくつかの行を削除するには、このクエリを使用します。MSSQLは、行コンストラクタMySQLで
DELETE
FROM test
WHERE (id1, id2) IN ((1, 1), (2,1), (3,1))
*複合PK(ID1、ID2)このクエリは文句を言わないMsSQLが上で動作
。誰もが、これは動作するはずです私にMsSQLが
の同等のクエリを伝えることができ、それはしかし、もう少し冗長です:
DELETE
FROM test
WHERE id1 IN (1, 2 , 3) AND id2 = 1
あなたが本当に使用したい場合は、あなたの問題を解決するためのより良い方法があるかもしれないけど行コンストラクターでは、値コンストラクターを使用して作成された仮想エンティティーに単純に参加できます。
作成test
から3行削除をもたらすべきである行コンストラクタ
delete a
from test a
join (
values (1, 1), (2, 1), (3, 1)) b(id1, id2)
on a.id1 = b.id1
and a.id2 = b.id2;
に上記DMLクエリを使用して行を削除するいくつかのテストデータ
create table test (
id1 int not null,
id2 int not null,
primary key clustered (id1, id2));
insert test (
id1,
id2)
select top (100)
id1,
id2
from (
select distinct
id1 = abs(checksum(newid())) % 10,
id2 = abs(checksum(newid())) % 10
from sys.columns a
cross join sys.columns b) c;
:ここでは一例です。
あなたのIDのデータ型は何ですか?そのvarcharこれが動作する必要があります。: 'delete from test(( '' 1 '、' 1 ')、(' 2 '、' 1 ')、(' 3 '、' 1 ') ) ' – Kayathiri
@KayathiriはSQL Serverにはありません。 –
以下の回答の1つが役に立った場合は、こちらを参照してください:http://stackoverflow.com/help/someone-answers – JustSomeDude