Я читаю статью с этого сайта , но когда я запускаю код, предоставленный этой статьей, я получаю ошибку:
Msg 102, Level 15, State 1, Line 16
Incorrect syntax near '.'.
Я дважды проверил синтаксис и могуне найти причину этой ошибки.Код выглядит следующим образом, отформатированный в SQL Prompt.
Кто-нибудь может мне помочь с этим?Большое спасибо.
SELECT es.session_id ,
es.host_name ,
es.login_name ,
er.status ,
DB_NAME(database_id) AS DatabaseName ,
SUBSTRING(qt.text, ( er.statement_start_offset / 2 ) + 1, ( ( CASE WHEN er.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE er.statement_end_offset
END - er.statement_start_offset ) / 2 ) + 1) AS [Individual Query] ,
qt.text AS [Parent Query] ,
es.program_name ,
er.start_time ,
qp.query_plan ,
er.wait_type ,
er.total_elapsed_time ,
er.cpu_time ,
er.logical_reads ,
er.blocking_session_id ,
er.open_transaction_count ,
er.last_wait_type ,
er.percent_complete
FROM sys.dm_exec_requests AS er
INNER JOIN sys.dm_exec_sessions AS es ON es.session_id = er.session_id
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
CROSS APPLY sys.dm_exec_query_plan(er.plan_handle) qp
WHERE es.is_user_process = 1
AND es.session_Id NOT IN ( @@SPID )
ORDER BY es.session_id
Редактировать:
Я запускаю запрос верхнего уровня, используя SSMS 2008 для базы данных SQL Server 2005.Когда я пытаюсь использовать SSMS 2005, выполняю тот же запрос к базе данных SQL Server 2005, все работает нормально.Как я знаю, SSMS 2008 может подключаться к базе данных SQL Server 2005 и работать на ней, верно?Также я попробовал другой пример, приведенный ниже.Это действительно просто.Точно так же он успешно выполняется при использовании SSMS 2005 против SQL Server 2005. При использовании SSMS 2008 против SQL Server 2005 выдает ту же ошибку, что я упоминал ранее.
SELECT stat.sql_handle ,
sqltext.text SQL
FROM sys.dm_exec_query_stats stat
CROSS APPLY sys.dm_exec_sql_text(stat.sql_handle) sqltext
У кого-нибудь есть идеи по этому поводу?
Спасибо.
Редактировать 2:
Только что попробовал, использование SSMS 2008 против SQL Server 2008 работает нормально.