【问题标题】:Must Declare the scalar variable error in Stored Procedure必须在存储过程中声明标量变量错误
【发布时间】:2014-05-28 13:20:28
【问题描述】:
ALTER PROCEDURE [dbo].[SP_GetLatestMmdData]

AS
DECLARE
     @vReturnVar VARCHAR(10) 
    ,@vRCount VARCHAR(10)
BEGIN

SET NOCOUNT ON;
SET @vRCount =(SELECT Distinct Shift From [dbo].[tblMMDLogEntry] Where Shift Like 'Night     ' And Date=(SELECT  MAX(Date)  
                FROM [dbo].[tblMMDLogEntry]))
IF(@vRCount>0) 
BEGIN
    SET @vReturnVar='Night      '
END
Else
BEGIN
    SET @vReturnVar='Evening    '
END             

SELECT
    convert(varchar,[Date],103) Date
                    ,Shift
                    ,SlNo
                    ,TotalManpower
                    ,JobDescription
                    ,PermitNo
                    ,StartTime
                    ,EndTime
                    ,AllotedManpower
                    ,Supervisior
                    ,AShift
                    ,GShift
                    ,BShift
                    ,CShift
                    ,Remarks 
    FROM [dbo].[tblMMDLogEntry] WHERE Date=(SELECT  MAX(Date)  
     FROM [dbo].[tblMMDLogEntry]) 
     AND Shift= @vReturnVar 

END

我的存储过程中有以下代码。我已经宣布@vReturnVar 但仍显示“必须声明标量变量“@vReturnVar”。

【问题讨论】:

  • 您的错误来自哪一行?那个时候变量可能超出范围吗?
  • Msg 137, Level 15, State 2, Line 19 必须声明标量变量“@vReturnVar”。
  • 我只是想运行主要的 Select 查询来检查结果。但显示以下错误。
  • 如果您只是选择并执行 SELECT 查询,那么它没有变量的概念。该变量必须是您正在执行的 SQL 的一部分。将该部分复制并粘贴到您尝试运行的查询的开头。
  • 你几乎肯定也想看看下面 JBrook 的答案

标签: sql sql-server-2008


【解决方案1】:

它不应该包含一个“COUNT()”

        SET @vRCount =(SELECT COUNT(Distinct Shift) 
                       From [dbo].[tblMMDLogEntry] 
                       Where Shift Like 'Night     ' And Date=(SELECT  MAX(Date)  
                       FROM [dbo].[tblMMDLogEntry]))

【讨论】:

  • 是的@Jbooks!我已经纠正了那个错误!那是个错误。
【解决方案2】:

DECLARE
@vReturnVar VARCHAR(10) 
,@vRCount VARCHAR(10)

在存储过程的BEGIN之后

【讨论】:

  • 做到了,但还是同样的问题。我不明白为什么会这样。
【解决方案3】:

开始后声明 声明 @vReturnVar VARCHAR(10)

肯定适合你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 2015-01-08
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    相关资源
    最近更新 更多