Tôi hy vọng bạn đã tìm được giải pháp tốt. Tôi đã có cùng một vấn đề, và cách tôi làm việc xung quanh nó có lẽ không phải là tốt nhất nhưng nó đang làm việc ngay bây giờ.
nó liên quan đến việc tạo máy chủ được liên kết và sử dụng sql động - không phải là tốt nhất, nhưng nếu có ai có thể đề xuất điều gì đó tốt hơn, vui lòng nhận xét/trả lời.
declare @sql nvarchar(max)
DECLARE @DB_SPACE TABLE (
[DatabaseName] NVARCHAR(128) NOT NULL,
[FILEID] [smallint] NOT NULL,
[FILE_SIZE_MB] INT NOT NULL DEFAULT (0),
[SPACE_USED_MB] INT NULL DEFAULT (0),
[FREE_SPACE_MB] INT NULL DEFAULT (0),
[LOGICALNAME] SYSNAME NOT NULL,
[DRIVE] NCHAR(1) NOT NULL,
[FILENAME] NVARCHAR(260) NOT NULL,
[FILE_TYPE] NVARCHAR(260) NOT NULL,
[THE_AUTOGROWTH_IN_KB] INT NOT NULL DEFAULT(0)
,filegroup VARCHAR(128)
,maxsize VARCHAR(25)
PRIMARY KEY CLUSTERED ([DatabaseName] ,[FILEID])
)
SELECT @SQL ='SELECT [DatabaseName],
[FILEID],
[FILE_SIZE_MB],
[SPACE_USED_MB],
[FREE_SPACE_MB],
[LOGICALNAME],
[DRIVE],
[FILENAME],
[FILE_TYPE],
[THE_AUTOGROWTH_IN_KB]
,filegroup
,maxsize FROM OPENQUERY('+ QUOTENAME('THE_MONITOR') + ','''+ ' EXEC MASTER.DBO.monitoring_database_details ' +''')'
exec sp_executesql @sql
INSERT INTO @DB_SPACE(
[DatabaseName],
[FILEID],
[FILE_SIZE_MB],
[SPACE_USED_MB],
[FREE_SPACE_MB],
[LOGICALNAME],
[DRIVE],
[FILENAME],
[FILE_TYPE],
THE_AUTOGROWTH_IN_KB,
[filegroup],
maxsize
)
EXEC SP_EXECUTESQL @SQL
tính năng này hiện đang hoạt động cho tôi. Tôi có thể đảm bảo số cột và loại cột được trả về bởi quy trình được lưu trữ giống như trong bảng này, đơn giản vì tôi trả về cùng một bảng từ thủ tục được lưu trữ.
cảm ơn và liên quan marcelo
Một khả năng nữa là việc đối chiếu DB trên TEMP DB và DB bạn đang chèn vào không khớp. –