我想创建一个T-SQL查询,它删除包含此确切表的所有数据库中表Logins
中的所有行,因此可以毫无错误地运行它。
我想将代码重用于其他内容,例如从包含表Users
的所有数据库中查找所有活动用户。因此,我认为,最好的解决方案是纯粹的T-SQL
解决方案。这样查询甚至可以成为SQL Server Agent
有可能吗?怎么样?
答案 0 :(得分: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
行以实际运行代码,而不是仅查看将执行的内容。