SQL Server:当前命令发生严重错误。结果(如果有的话)应该被丢弃

时间:2012-08-29 14:12:20

标签: sql tsql stored-procedures

尝试执行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

2 个答案:

答案 0 :(得分:0)

就我在Google上看到的情况而言,这可能是:

link

  

在测试索引的SQL Server 2005中,我创建了一个表   一个非聚集索引。我没有创建任何聚集索引   表。之后我运行了SELECT语句,它给了我以下错误。   当我看到错误时,我非常惊讶。它说Msg 0,它是什么   意味着这个错误不是微软所知的错误,它可能   是bug。

     

消息0,级别11,状态0,行0发生严重错误   当前命令。结果(如果有的话)应该被丢弃。消息0,   20级,状态0,0行电流发生严重错误   命令。结果(如果有的话)应该被丢弃。

     

我确实搜索了错误,发现它肯定是bug而且有   SQL Server 2005 Service Pack 2的累积更新包6,其中   解决了这个问题。您可以下载累积更新包6   从此处获取SQL Server 2005 Service Pack 2。

     

要解决此问题,请向Microsoft Online Customer提交请求   获取累积更新包的服务。在线提交   请求获取累积更新包,请访问以下内容   Microsoft网站:http://go.microsoft.com/?linkid=6294451

Another Link to Download

答案 1 :(得分:0)

恢复数据库的旧备份,然后重试,它解决了我的问题。