Déclarer une variable de la liste dans la procédure stockée SQL Server

Je voudrais supprimer les données de plusieurs tables avec les mêmes conditions (clause where) pour chaque instruction delete.

delete from tblA where id in (select x.id from tblX x where name like N'%test%')
delete from tblB where id in (select x.id from tblX x where name like N'%test%')
delete from tblC where id in (select x.id from tblX x where name like N'%test%')
delete from tblD where id in (select x.id from tblX x where name like N'%test%')

Est-il un moyen de déclarer une liste qui stocke l'id de l'instruction select ci-dessus?

J'ai essayé:

declare @ids int
set @ids = select x.id from tblX x where name like N'%test%'

Mais il se plaint de ce que

Sous-requête a renvoyé plus de valeur 1. Ce n'est pas permis lorsque l'
sous-requête suit =, !=, <, <= , >, >= ou lorsque la sous-requête est utilisé comme
une expression.

Veuillez en informer, merci.

Pensez à pourquoi les top 1 qui fait ce travail. stackoverflow.com/questions/11232751/...

OriginalL'auteur Eddie | 2013-02-22