このようなId
クエリによって返されたを変数に格納したいと思います。
SELECT FooId FROM Bar; -- FooId is of type int
後で次のように言うことができるように:
DELETE FROM Foo WHERE Id IN @TheFooIdsIGotFromThePreviousQueryAbove;
それ、どうやったら出来るの?具体的には、そのようなリスト変数をどのデータ型にする必要がありますか?
簡単にできることに注意してください。
DELETE FROM Foo WHERE Id IN (SELECT FooId FROM Bar);
しかし、質問を単純に複雑にする理由で、私はそれを行うことができません。
Microsoft SQL Server2014を使用しています。
IDを使用temp table
またはtable variable
保存する
-- declare table variable
declare @IDS table (Id int)
-- insert into the table variable
insert into @IDS (Id) SELECT FooId FROM Bar
-- join the table variable to the table you want to delete
DELETE d
FROM Foo d
INNER JOIN @IDS i ON d.Id = i.Id
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加