Проблема компиляции T-SQL для простого запроса с использованием DMV - PullRequest
1 голос
/ 20 сентября 2011

По какой-то причине следующий запрос, использующий sys.dm_exec_requests DMV и sys.dm_exec_sql_text DMV, не компилируется:

SELECT er.session_id, es.[text]
FROM sys.dm_exec_requests AS er 
  CROSS APPLY sys.dm_exec_sql_text(er.[sql_handle]) AS es 

Вышеприведенный отрывок запроса является частью гораздо более крупного (и более сложного) запроса, который не выполняется, потому что этот меньший запрос не будет выполнен, что дает мне синтаксическую ошибку:

Сообщение 102, уровень 15, состояние 1, строка 3 Неверный синтаксис рядом с '.'.

Запрос кажется достаточно простым, но похоже, что синтаксический анализатор T-SQL работает на er.sql_handle. Я подумал, что это может быть проблема с выходом из положения, и попытался er.[sql_handle], но, к сожалению, получил ту же ошибку.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Я получаю эту ошибку при запуске в контексте БД в режиме совместимости с SQL Server 2000. Попробуйте запустить его в контексте одной из системных баз данных.

1 голос
/ 10 октября 2012

Если вы используете 2008 или 2008 R2 и EXEC sp_dbcmptlevel 'databasename' ниже 90, используйте следующий скрипт:

ALTER DATABASE databasename SET COMPATIBILITY_LEVEL = 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...