我如何在 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 建议的那样,使用 GO
是 a better practice,如下所示:
DECLARE @binsize INT = 5;
select @binsize;
GO
select 5;
注意:在 SQLFiddle 站点的右上角,您需要将查询终止符切换为使用 GO
关键字。
我正在尝试创建一个 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 建议的那样,使用 GO
是 a better practice,如下所示:
DECLARE @binsize INT = 5;
select @binsize;
GO
select 5;
注意:在 SQLFiddle 站点的右上角,您需要将查询终止符切换为使用 GO
关键字。