0

次のクエリを使用してSQLServer2008で確認していますが、発生するエラーは次のとおりです。

メッセージ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

問題が何であるかわからない

私のSQLServerのバージョンは次のとおりです。

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

1 に答える 1

3

データベースは2000互換モードです。これを行うと、クエリは機能します。

ALTER DATABASE YourDatabase SET COMPATIBILITY_LEVEL = 100;

理由により80モードになっている可能性がありますが、通常、これはアップグレードまたは移行中に忘れられた手順にすぎないことに注意してください。

于 2012-07-06T13:54:20.477 に答える