0
このサイトにあるサンプルを使用して、次のクエリを書くことに成功しました。 しかし、うまく機能しますが、検索対象の各データベースの名前を結果に2つの列の横に表示するようにしたいと考えています。すべての私の試みは失敗しました。助けてください。一例として各DBでクエリを実行し、DB名も表示
DECLARE @sql varchar(max);
SELECT @sql = Coalesce(@sql + ' UNION ALL ', '') + 'SELECT column1, column2 FROM ' + QuoteName(name) + '.dbo.T_MyTable'
FROM sys.databases WHERE database_id > 4 AND state = 0
;
PRINT @sql
EXEC (@sql);
、次は無効な列名のエラーで
DECLARE @sql varchar(max);
SELECT @sql = Coalesce(@sql + ' UNION ALL ', '') + 'SELECT SoStoreNameTx, SoStoreNoTx, ' + quotename(name) + ' FROM ' + QuoteName(name) + '.dbo.T_SoStore'
FROM sys.databases WHERE database_id > 4 AND state = 0
;
PRINT @sql
EXEC (@sql);
以下のコードを試してみてください、あなたはcolumn2の後に列リストにQUOTENAME(名前)を追加してみました? (FROMキーワードの前に)。それは文字列を選択するだけの ''で囲まれている必要があります。 – PacoDePaco
ありがとう、私は持っていて失敗しました。私は質問を編集して、失敗したクエリを追加します。 – DeepDiver
@DeepDiverはPRINTを見ます - あなたは一重引用符で囲まれていないデータベース名を選択しています - 以下の答えはあなたがそれをどうするべきかを示しています。 – Leonidas199x