2012-07-06 189 views
0

我使用下面的查詢,以檢查它的SQL Server 2008上,我得到的錯誤是SQL Server 2008的查詢拋出錯誤

消息102,級別15,狀態1,第13行附近有語法錯誤。 」。

查詢:

SELECT total_worker_time/execution_count AS AvgCPU 
, total_worker_time AS TotalCPU 
, total_elapsed_time/execution_count AS AvgDuration 
, total_elapsed_time AS TotalDuration 
, (total_logical_reads+total_physical_reads)/execution_count AS AvgReads 
, (total_logical_reads+total_physical_reads) AS TotalReads 
, execution_count 
, 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 txt 
, query_plan 
FROM sys.dm_exec_query_stats AS qs 
cross apply sys.dm_exec_sql_text(qs.sql_handle) AS st 
cross apply sys.dm_exec_query_plan (qs.plan_handle) AS qp 
ORDER BY 1 DESC 

行號13是

FROM sys.dm_exec_query_stats AS qs 

不知道是什麼的問題是

我的SQL Server版本:

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) 
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600) 
+0

對我來說工作得非常好...... – Chandu 2012-07-06 13:48:28

+0

對我的SQL 2008 R2開發人員安裝工作正常 – DaveShaw 2012-07-06 13:50:00

+0

對我來說也適用。 – 2012-07-06 13:51:09

回答

3

您的數據庫處於2000兼容模式。一旦你這樣做,你的查詢將工作:

ALTER DATABASE YourDatabase SET COMPATIBILITY_LEVEL = 100; 

注意,它可能會在80模式的一個原因,但通常這僅僅是一個升級或遷移過程中一個被遺忘的一步。

+0

偉大的工作:) – user580950 2012-07-06 13:58:50