【发布时间】: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