我正在尝试从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个表。该查询有问题。
我怎样才能使它工作?
如果您不介意使用动态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)