我如何在 SQL fiddle 查询中使用局部变量

How I use a local variable in a SQL fiddle query

我正在尝试创建一个 sqlfiddle

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

并收到此错误。

Must declare the scalar variable "@binsize".

我找到了这样的示例,并且在 sql 服务器上工作正常。

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

仅return 7

正如@AaronBertrand 建议的那样,使用 GOa better practice,如下所示:

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

select 5;

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

SQL Fiddle Demo