Один и тот же запрос в другом контексте базы данных дает другой результат - PullRequest
0 голосов
/ 12 декабря 2010

Следующий запрос при выполнении в 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 столбец nameNULL, а не реальное имя объекта.В чем причина этой проблемы?

1 Ответ

2 голосов
/ 12 декабря 2010

По умолчанию OBJECT_NAME смотрит на объекты в текущей базе данных, как указано оператором USE;измените свой вызов, чтобы указать конкретную базу данных, для которой вы хотите получить информацию об объекте:

OBJECT_NAME(m.object_id, DB_ID('AdventureWorks')) AS [name]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...