从SQL Server中的多个未知表中删除数据?

问题描述 投票:-1回答:1

我正在尝试从SQL Server中的任何表中删除特定数据。这样的DB。我想删除所有Romios。

Dog.table
(NAME,AGE) = {(Romio,2), (Juliet,3)}

Cat.table
(NAME, Fur) = {(Romio,short), (Trump, bald)}

Cow.table
(Name, Mlik) = {(Romio, 10L), (Obama, 2L)}

Useless.table
(Use1, Use2) = {...}

所以,我得到了以下代码的表格列表:

SELECT TABLE_NAME FROM information_schema.COLUMNS where COLUMN_NAME =  'NAME'

但是,下一步不起作用。

DELETE (SELECT TABLE_NAME FROM information_schema.COLUMNS where COLUMN_NAME =  'NAME') WHERE Name = 'Romio' 

是的.....我知道删除查询仅适用于1个表。该查询有问题。

我怎样才能使它工作?

sql sql-server tsql
1个回答
0
投票

如果您不介意使用动态TSQL,即使用EXEC,请尝试此操作

DECLARE @StrQuery nvarchar(MAX)
SELECT @StrQuery = ISNULL(@StrQuery, '') + 'DELETE [' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] WHERE NAME = ''Romio''  ' FROM information_schema.COLUMNS where COLUMN_NAME =  'NAME'
EXEC(@StrQuery)
© www.soinside.com 2019 - 2024. All rights reserved.