2014-02-12 122 views
1

我想创建一个T-SQL查询,这些查询正在删除包含此确切表的所有数据库中的表Logins中的所有行,因此它可以无任何错误地运行。从包含表的所有数据库中的表中删除

我想将代码重用到其他内容中,例如从包含表Users的所有数据库中查找所有活动用户。因此,我认为,最好的解决方案是纯粹的T-SQL解决方案。这样,查询甚至可以成为一个自动作业运行SQL Server Agent

这可能吗?如何?

回答

4

建立一些动态SQL:

declare @sql varchar(max) = '' 
select @sql = @sql + 
    'use [' + name + '] ' + 
    'if exists (select * from sys.tables where name = ''Logins'') ' + 
    'delete from Logins ' 
from sys.databases where name not in ('master','model','msdb','tempdb') 

print @sql 
--exec (@sql) 

取消对exec线实际运行的代码,而不是仅仅看有谁会来执行。

+0

工程就像一个魅力,谢谢! – Behrens

相关问题