以下查询在AdventureWords
和tempdb
中执行时会产生不同的结果。
SELECT o.type_desc,
OBJECT_NAME(m.object_id) name,
definition
FROM [AdventureWorks].sys.sql_modules m
INNER JOIN [AdventureWorks].sys.objects o ON m.object_id = o.object_id;
在tempdb
上下文中执行时,name
列将为NULL,而不是真实对象名称。
这个问题的原因是什么?
答案 0 :(得分:2)
默认情况下OBJECT_NAME
查看当前数据库中由USE
语句指定的对象;更改您的调用以指定您想要对象信息的特定数据库:
OBJECT_NAME(m.object_id, DB_ID('AdventureWorks')) AS [name]