0

SQL Server ストアド プロシージャを実行しようとすると、次のエラーが発生します。現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。

これが壊れる部分です。理由はありますか?ありがとうございました!

IF  @Supervisor = 1 
AND @Calc = 1
    BEGIN
        INSERT INTO @Employees
        SELECT [Employee_No]
        FROM 
            dbo.fx_DetermineEmployeesBase
            (
                @Employee_ID
              , NULL
              , @Employee_ID
              , 2
            )

    ;WITH Applications AS
    (
         SELECT TOP 25
            ROW_NUMBER() OVER (ORDER BY vw.[Fullname] ASC, vw.[Submission_Date] DESC) AS [Row]
          , ((ROW_NUMBER() OVER (ORDER BY vw.[Fullname] ASC, vw.[Submission_Date] DESC) - 1) / @Page_Size) + 1 AS [Page_Number]
          , vw.[Employee_No]
          , CASE 
                WHEN fx.[New_Balance] > vw.[Balance] THEN vw.[Balance]
                ELSE fx.[New_Balance]
            END AS [Predicted_Balance]
        FROM vw_Employee_Leave_Application vw
            FULL OUTER JOIN @Employees e ON
                vw.[Employee_No] = e.[Employee_No]
            --This causes the error:
            --A severe error occurred on the current command.  The results, if any, should be discarded.
            CROSS APPLY dbo.fx_Employee_Leave_Type_Balance_Predict_LastRow
                (
                    NULL 
                  , COALESCE
                    (
                        CASE
                            WHEN vw.[Start_Date] <= 
                                (
                                    SELECT TOP 1 [End_Date]
                                    FROM vw_Employee_Leave_Planner
                                    WHERE
                                        [Employee_No] = vw.[Employee_No]
                                    AND [Leave_Type_No] = vw.[Leave_Type_No]
                                    AND 
                                    [Accepted] = 1
                                    AND [End_Date] > GETDATE()
                                    ORDER BY [End_Date] DESC
                                )
                            THEN
                                (
                                    SELECT TOP 1 [End_Date]
                                    FROM vw_Employee_Leave_Planner
                                    WHERE
                                        [Employee_No] = vw.[Employee_No]
                                    AND [Leave_Type_No] = vw.[Leave_Type_No]
                                    AND [Accepted] = 1
                                    AND [End_Date] > GETDATE()
                                    ORDER BY [End_Date] DESC
                                )
                            ELSE vw.[Start_Date]
                        END
                      , GETDATE()
                    )
                  , vw.[Employee_No]
                  , vw.[Leave_Type_No]
                ) fx
        WHERE
            (
                vw.[Employee_No] = e.[Employee_No]
            AND vw.Approver_No IS NULL
            )
        OR  vw.[Approver_No] =  @Approver_ID
    ),
    PageSettings AS
    (
        SELECT TOP 1
            [Row] AS [Item_Count]
          , [Page_Number] AS [Page_Count]
        FROM Applications
        ORDER BY [Row] DESC
    )

    SELECT
        [Row] AS [Row_Number]
      , [Page_Number]
      , @Page_Size AS [Page_Size]
      , [Item_Count]
      , [Page_Count]
    FROM Applications, PageSettings
    WHERE
        [Page_Number] = @Page_No
    OR  @Page_No IS NULL  
    END
4

2 に答える 2

0

私がGoogleで見た限り、これは次の可能性があります。

リンク:

SQL Server 2005 でインデックスをテストしているときに、クラスター化されていないインデックスが 1 つだけのテーブルを作成しました。テーブルにクラスター化インデックスを作成しませんでした。その後、SELECTステートメントを実行すると、次のエラーが発生しました。エラーを見てとても驚きました。Msg 0 と表示されます。これは、このエラーが Microsoft にとって既知のエラーではなく、バグである可能性があることを意味します。

メッセージ 0、レベル 11、状態 0、行 0 現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。メッセージ 0、レベル 20、状態 0、行 0 現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。

エラーを検索したところ、これは間違いなくバグであり、この問題を修正する SQL Server 2005 Service Pack 2 用の累積的な更新プログラム パッケージ 6 があることがわかりました。SQL Server 2005 Service Pack 2 の累積的な更新プログラム パッケージ 6 は、ここからダウンロードできます。

この問題を解決するには、Microsoft Online カスタマー サービスにリクエストを送信して、累積的な更新プログラム パッケージを入手してください。累積的な更新プログラム パッケージを入手するためのオンライン要求を送信するには、次のマイクロソフト Web サイトにアクセスしてください: http://go.microsoft.com/?linkid=6294451

ダウンロードする別のリンク

于 2012-08-29T14:29:53.867 に答える
0

データベースの古いバックアップを復元して再試行すると、問題が解決します。

于 2013-02-11T07:56:09.777 に答える