我想創建一個存儲過程,它將從sys.databases和sys.database_files中獲取數據並將這些信息合併到一個結果集中。下面的代碼SQL Server:過程不輸出任何東西?
CREATE PROCEDURE dbo.PROC_getDbInfo
AS
SET NOCOUNT ON
GO
TRUNCATE TABLE dbo.dbinfo
GO
EXECUTE sp_msforeachdb 'insert into dbo.dbinfo
select ''?'' as name,
type_desc,
physical_name,
state_desc,
size * 1.0/128 as size_in_mb,
max_size,
growth * 1.0/128 as growth_in_mb,
is_percent_growth,
is_read_only
from [?].sys.database_files'
GO
SELECT @@SERVERNAME as instance_name,
f.name,
d.create_date,
d.compatibility_level,
d.collation_name,
d.user_access_desc,
d.state_desc,
d.recovery_model_desc,
d.page_verify_option_desc,
d.log_reuse_wait_desc,
f.type_desc,
f.physical_name,
f.state_desc,
f.size_in_mb,
f.max_size,
f.growth_in_mb,
f.is_percent_growth,
f.is_read_only
FROM dbo.dbinfo AS f INNER JOIN
sys.databases AS d
ON f.name = d.name
ORDER BY f.name
GO
當執行這個程序,我沒有得到任何輸出。爲什麼?
EXECUTE dbo.PROC_getDbInfo
可能是因爲sys.databases中沒有行,名稱='?' – 2010-09-03 11:42:45
Noup,從谷歌查詢sp_msforeachdb ... – atricapilla 2010-09-03 12:03:06