2014-02-12 3 views
1

이 정확한 테이블을 포함하는 모든 데이터베이스에서 Logins 테이블의 모든 행을 삭제하는 T-SQL 쿼리를 만들므로 오류없이 실행할 수 있습니다.테이블이 포함 된 모든 데이터베이스에서 테이블 삭제

코드를 다른 항목에도 재사용하고 싶습니다. 예 : 테이블 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

관련 문제