SQLFiddle:必须声明标量变量错误

时间:2015-01-07 18:38:10

标签: sql sqlfiddle

我正在尝试执行下一个SQL语句(SQL Server 2008 Profile)

DECLARE @fun int;
SET @fun = 40;

select cast(@fun as varchar(10)) + 'hello'

和SQLFiddle给出了错误:Must declare the scalar variable @fun

我哪里错了?

enter image description here

http://sqlfiddle.com/#!3/d41d8/42156

3 个答案:

答案 0 :(得分:7)

您需要从最后一个下拉列表中选择[Go]。

答案 1 :(得分:2)

我认为分号在这里引入了问题。

如下所述:http://www.sql-server-helper.com/error-messages/msg-137.aspx和此处:SQL Server - Variable declared but still says "Must declare the scalar variable",当语句单独执行而不是作为“单位”时会出现问题,而分号似乎会触发它。

当我从您的对帐单中删除分号时,它会起作用:http://sqlfiddle.com/#!3/d41d8/42159

答案 2 :(得分:0)

您不必删除分号,重要的部分是在右下方的conner下拉列表中选择[GO]作为查询终止符。

FIDDLE DEMO

DECLARE @fun int;
SET @fun = 40;
select @fun;
GO

select 10;
GO

select @fun + 10;

前三个句子作为一个整体执行,因为现在;没有结束查询。所以@fun在该范围内可见。

第二块注意事项你需要在GO之后留一个空格。

第三个块无法工作,因为@fun未在此块中定义。