0
使用我在本站點找到的示例,我成功地編寫了以下查詢。 它運作良好,但是,我希望得到每個被查詢的數據庫的名稱在結果中報告,在這兩列旁邊。我所有的嘗試都失敗了。請提供任何幫助。在每個數據庫上運行查詢並顯示數據庫名稱
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);
代碼列列表? (在FROM關鍵字之前)。它應該接受'',所以你只需選擇一個字符串。 – PacoDePaco
謝謝,我已經失敗了。我編輯我的問題以添加失敗的查詢 – DeepDiver
@DeDDiver查看PRINT - 您選擇的數據庫名稱未包含在單引號中 - 下面的答案顯示了您應該如何執行此操作。 – Leonidas199x