2016-06-21 2 views
0

여러 데이터베이스 나는 동시에 여러 데이터베이스에 대해 실행하고 싶습니다 300 개가 넘습니다. 동일한 쿼리를 300 번 쓰지 않으려면 어떻게해야합니까?나는 하나의 선택 문이 TSQL

답변

2

테이블 이름 앞에 데이터베이스 이름을 추가하기 만하면됩니다. 당신은 모든 데이터가 반환하려는 경우 하나 개의 결과는 모든 선택 문 연합 (EU)을 추가하는 결과

Select LastName from dbname1.dbo.TABLE where LastName like '%eloph' 
UNION ALL 
Select LastName from dbname2.dbo.TABLE where LastName like '%eloph' 
UNION ALL 
Select LastName from dbname3.dbo.TABLE where LastName like '%eloph' 
UNION ALL 
Select LastName from dbname4.dbo.TABLE where LastName like '%eloph' 

보관할를 추가 UNION ALL를 사용하여 설정한다.

편집에 불리한 점이 있다면 필요한 대부분을 생성해야합니다.

은 그냥 복사, 당신을위한 SQL을 생성하고

+0

감사를 들어 도움이 필요하지만, 실제로 그것은 제가 피하고자하는 바입니다. 필요한 복사 및 붙여 넣기가 어렵지는 않지만 300 시간을 수행하는 것은 약간 지루합니다. 주위에? – MPJ567

+0

글쎄, 당신은 모든 데이터베이스의 목록을 가지고 있습니까? 테이블에 SELECT 문을 작성하여 쿼리를 작성할 수 있습니다. – Paparazzi

0

이 시도 부여 ALL

SELECT 'Select LastName from ' + name + '.dbo.TABLE where LastName like ''%eloph'' 
UNION ALL ' 
FROM sys.databases 

참고 두 배로 따옴표 마지막 UNION을 제거합니다 :

DECLARE @sql varchar(1000) 

SELECT @sql = 'Select 1' 
EXEC sp_MSforeachdb @sql