6
我將歸檔以獲取從所有數據庫中提取一些數據並返回單個結果集的查詢。SQL Server:將sp_MSforeachdb合併到單個結果集中
現在,我有以下幾點:
DECLARE @command varchar(4000)
SELECT @command = '
USE [?]
SELECT
database_name = DB_NAME(database_id)
, log_size_mb = CAST(SUM(CASE WHEN type_desc = "LOG" THEN size END) * 8./1024 AS DECIMAL(8,2))
, row_size_mb = CAST(SUM(CASE WHEN type_desc = "ROWS" THEN size END) * 8./1024 AS DECIMAL(8,2))
, total_size_mb = CAST(SUM(size) * 8./1024 AS DECIMAL(8,2))
, Kostenstelle = (select value from sys.extended_properties WHERE name = "Kostenstelle")
FROM sys.master_files WITH(NOWAIT)
WHERE database_id = DB_ID()
GROUP BY database_id
'
EXEC sp_MSforeachdb @command
上面的代碼將在多個結果集返回。
結果應該如下所示:
|database_name|log_size_mb|row_size_mb|Kostenstelle|
+-------------+-----------+-----------+------------+
|demoA | 12| 10| xxxx|
|demoB | 52| 12| xxxx|
好吧,是的,這是可能的,但我的願望是沒有如果可能,請使用表格。我也嘗試用declare @mytable table在內存中創建一個臨時表...但它不適用於我,因爲「mytable在ms_foreachdb循環中不可用:-( – Alex