मुझे आशा है कि आपको एक अच्छा समाधान मिलेगा। मुझे एक ही समस्या थी, और जिस तरह से मैंने इसके आसपास काम किया वह शायद सबसे अच्छा नहीं है लेकिन अब यह काम कर रहा है।
इसमें एक लिंक किया गया सर्वर बनाना और गतिशील एसक्यूएल का उपयोग करना शामिल है - सर्वश्रेष्ठ नहीं, लेकिन अगर कोई बेहतर कुछ सुझाव दे सकता है, तो कृपया टिप्पणी/उत्तर दें।
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
यह मेरे लिए अभी काम कर रहा है। मैं संग्रहीत प्रक्रिया द्वारा लौटाए गए कॉलम की संख्या और कॉलम के प्रकार की गारंटी दे सकता हूं, इस तालिका में जैसा ही है, क्योंकि मैं संग्रहीत प्रक्रिया से उसी तालिका को वापस करता हूं।
धन्यवाद और का संबंध मार्सेलो
एक और संभावना यह है कि पर डीबी मिलान अपने टीईएमपी डीबी और डीबी जो आप सम्मिलित कर रहे हैं, मेल नहीं खाते हैं। –