を超える選択:私は同時に複数のデータベースに対して実行したいのですが、単一のselect文を持っている複数のデータベースのTSQL
select LastName from TABLE where LastName like '%eloph'
Iから選択したいすべてのデータベースが同じテーブルが含まれている、同一の構造ではなく、 300以上のものがあります。同じクエリを300回書くのを避けるにはどうすればいいですか?
を超える選択:私は同時に複数のデータベースに対して実行したいのですが、単一のselect文を持っている複数のデータベースのTSQL
select LastName from TABLE where LastName like '%eloph'
Iから選択したいすべてのデータベースが同じテーブルが含まれている、同一の構造ではなく、 300以上のものがあります。同じクエリを300回書くのを避けるにはどうすればいいですか?
テーブル名の前にデータベース名を追加することができます。あなたはすべてのデータが返されたい場合は1つの結果は、すべての文とSELECT文連合を追加した結果
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を生成し、
はこの試してみる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
ありがとうを助け、それは実際に私が避けることを望んでいるものです。私は必要なコピーとペーストが難しくないと知っていますが、それを300回行うのはちょっと面倒です。それのまわりで何か? – MPJ567
あなたはすべてのデータベースのリストを持っていますか?テーブル内にある場合は、select文を記述してクエリを作成することができます。 – Paparazzi