我正在尝试执行下一个SQL语句( Server 2008概要文件)
DECLARE @fun int;
SET @fun = 40;
select cast(@fun as varchar(10)) + 'hello'SQLFiddle给出了一个错误:Must declare the scalar variable @fun
我哪里错了?

http://sqlfiddle.com/#!3/d41d8/42156
发布于 2015-01-07 18:46:14
我认为分号在这里引入了这个问题。
正如这里所描述的:http://www.sql-server-helper.com/error-messages/msg-137.aspx和here:Server声明的变量,但仍然声明“必须声明标量变量”,当语句单独执行而不是作为“单元”执行时,问题就出现了,而分号似乎触发了这个问题。
当我从语句中移除分号时,它可以工作:http://sqlfiddle.com/#!3/d41d8/42159
发布于 2015-01-07 18:52:13
您需要从最后一个下拉列表中选择Go。

发布于 2015-07-17 21:37:54
您不必移除分号,重要的部分是在右下角的conner下拉列表中选择GO作为查询终止符。
小提琴演示
DECLARE @fun int;
SET @fun = 40;
select @fun;
GO
select 10;
GO
select @fun + 10;前三句话是作为一个整体来执行的,因为现在;并没有结束查询。所以在这个范围上可以看到@ that。
第二个街区要注意,你需要在离开后留出一个空间。
第三个块不能工作,因为在这个块中没有定义@乐趣。
https://stackoverflow.com/questions/27826314
复制相似问题