Obwohl es ein besserer Ansatz sein kann, um Ihr Problem zu lösen, wenn Sie wirklich verwenden möchten Als Zeilenkonstruktor können Sie einfach einer virtuellen Entität beitreten, die mit einem Wertekonstruktor erstellt wird. Hier ein Beispiel:
Erstellen einige Testdaten
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;
Zeilen löschen ein Zeilenkonstruktor mit
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;
Die obige DML-Abfrage führen sollten drei Zeilen aus test
in löschen.
Wie lautet der Datentyp Ihrer ID? Wenn sein varchar sollte dies funktionieren .: 'löschen aus test wo (id1, id2) in (('1', '1'), ('2', '1'), ('3', '1')) ' – Kayathiri
@Kayathiri nicht auf SQL Server. –
Wenn eine der folgenden Antworten Ihnen geholfen hat, lesen Sie bitte: http://stackoverflow.com/help/someone-answers – JustSomeDude