2

我试图创建一个sqlfiddle

DECLARE @binsize INT = 5;
select 5;
select @binsize; <-- this fail.
select 6;

并得到了这个错误。

必须声明标量变量“@binsize”。

我找到了这样的示例,并且在 sql server 中工作正常。

USE AdventureWorks2012;
GO
DECLARE @find varchar(30); 
/* Also allowed: 
DECLARE @find varchar(30) = 'Man%'; 
*/
SET @find = 'Man%'; 
SELECT p.LastName, p.FirstName, ph.PhoneNumber
FROM Person.Person AS p 
JOIN Person.PersonPhone AS ph ON p.BusinessEntityID = ph.BusinessEntityID
WHERE LastName LIKE @find; 

解决

进行 GO 更改可以解决问题。但仍然打开其他问题。

DECLARE @binsize INT = 5;
select @binsize + 2 ;
select @binsize + 5 ;
GO

只返回 7

4

1 回答 1

1

正如@AaronBertrand 建议的那样,使用GO一种更好的做法 ,如下所示:

DECLARE @binsize INT = 5;
select @binsize;
GO

select 5;

注意:在SQLFiddle站点的右上角,您需要切换查询终止符以使用GO关键字。

SQL 小提琴演示

于 2015-07-17T19:59:16.173 回答