Sql-Server
在資源數據庫中查找對象的名稱
我正在查看sys.dm_exec_function_stats視圖以查找標量函式統計資訊。該視圖還包括 ID 為32767的數據庫中的行,我發現它是Resource database。
其中一些 ID 可以傳遞給
OBJECT_NAME()
元OBJECT_DEFINITION()
數據函式,但一些 ID 返回NULL
SELECT SERVERPROPERTY('ResourceVersion') AS 'ResourceVersion' SELECT SERVERPROPERTY('ResourceLastUpdateDateTime') AS 'ResourceLastUpdateDateTime' SELECT defs.database_id , defs.object_id , OBJECT_NAME(defs.object_id) AS objName , OBJECT_DEFINITION(defs.object_id) AS objDef , OBJECT_NAME(defs.object_id, defs.database_id) AS objNameDB , OBJECT_DEFINITION(defs.object_id, defs.database_id) AS objDefDB FROM sys.dm_exec_function_stats AS defs WHERE defs.database_id = 32767
我可以在or in中找到
fn_hadr_is_primary_replica
函式 (object_id = -665919249) ,但在 object_id = -706609674 中找不到。sys.all_objects``sys.all_sql_modules
有什麼方法可以找到-706609674的對象名稱或定義?
在我的例子中,對象 id -706609674 是
sys.fn_cdc_jobs
.資源數據庫只是另一個數據庫,其中包含您可以複製並以不同名稱附加的文件。
這些文件被命名為
mssqlsystemresource.mdf
和mssqlsystemresource.ldf
。您可以在安裝的子目錄中找到它們
\MSSQL\Binn
。或者,從 DAC 執行您的命令。