我认为我正在尝试做一些相对简单的事情,但继续获得“必须声明标量变量错误”。我有两个变量:
DECLARE @CountOfThisCampaignSegment int
DECLARE @CountOfLastCampaignSegment int
select @CountOfThisCampaignSegment = COUNT(seg1) from #thisCampaignFinal
select @CountOfLastCampaignSegment = COUNT(seg1) from #lastCampaignFinal
我在其他地方看到我似乎需要把它们变成nvarchar,但是我需要在我的程序中将这两个变量比作IF语句 - 所以我不确定这是否会导致问题? / p>
如果有人能就SQL Server抛出此错误的原因提供一些建议和背景,我们将不胜感激!
非常感谢!
答案 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