10
我試圖運行一個簡單的查詢來查找具有最高平均CPU時間的查詢。該代碼是從字面上here複製粘貼:CROSS APPLY中的語法錯誤
SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;
問題是,SQL Server的抱怨在參數在第8行到語法錯誤到sys.dm_exec_sql_text
:qs.sql_handle
它無助地讀取
Incorrect syntax near '.'.
我不能,爲了我的生活,找出查詢有什麼問題。有任何想法嗎?
我完全忘記了兼容性級別!我正在使用SQL Server 2008 R2,但是在這個特定的數據庫上兼容級別設置爲80(沒有很好的理由)。 – vlad
這個答案有效,但在存儲過程中可以執行這樣的查詢嗎?因爲你不能在存儲過程中使用'USE master;'。 – jtate