我正在查看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 运行您的命令。