为什么我收到此错误?必须声明标量变量错误SQL Server 2008

时间:2013-06-04 23:02:10

标签: sql sql-server-2008 variables

我认为我正在尝试做一些相对简单的事情,但继续获得“必须声明标量变量错误”。我有两个变量:

DECLARE @CountOfThisCampaignSegment int
DECLARE @CountOfLastCampaignSegment int 

select @CountOfThisCampaignSegment = COUNT(seg1) from #thisCampaignFinal

select @CountOfLastCampaignSegment = COUNT(seg1) from #lastCampaignFinal

我在其他地方看到我似乎需要把它们变成nvarchar,但是我需要在我的程序中将这两个变量比作IF语句 - 所以我不确定这是否会导致问题? / p>

如果有人能就SQL Server抛出此错误的原因提供一些建议和背景,我们将不胜感激!

非常感谢!

1 个答案:

答案 0 :(得分:3)

我怀疑你的脚本实际上有多个批处理。在SQL Server Management Studio中,批处理由GO语句(默认情况下)分隔。

变量不会在批次中持续存在。例如,这会产生错误:

DECLARE @CountOfThisCampaignSegment int
DECLARE @CountOfLastCampaignSegment int 
select @CountOfThisCampaignSegment = COUNT(seg1) from #thisCampaignFinal
select @CountOfLastCampaignSegment = COUNT(seg1) from #lastCampaignFinal

-- other statements

GO

-- this line fails with "must declare scalar variable":
select @CountOfThisCampaignSegment, @CountOfLastCampaignSegment