不同数据库上下文中的相同查询给出不同的结

时间:2010-12-12 13:29:23

标签: tsql sql-server-2008

以下查询在AdventureWordstempdb中执行时会产生不同的结果。

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,而不是真实对象名称。 这个问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

默认情况下OBJECT_NAME查看当前数据库中由USE语句指定的对象;更改您的调用以指定您想要对象信息的特定数据库:

OBJECT_NAME(m.object_id, DB_ID('AdventureWorks')) AS [name]