Tsql 不同数据库上下文中的同一查询给出不同的结果
在Tsql 不同数据库上下文中的同一查询给出不同的结果,tsql,sql-server-2008,Tsql,Sql Server 2008,在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
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
列将为空,而不是真正的对象名。
出现此问题的原因是什么?默认情况下
对象\u NAME
查看当前数据库中由使用
语句指定的对象;更改调用以指定要为其提供对象信息的特定数据库:
OBJECT_NAME(m.object_id, DB_ID('AdventureWorks')) AS [name]