在SQL中声明@变量返回错误

时间:2015-05-05 22:34:33

标签: mysql sql variable-declaration

我试图在SQL中声明一个变量。我试过了两个

declare @mean INT;
set @mean = .5;

declare @mean INT
set @mean = .5

我一直收到这个错误:

  

意外的令牌""发现在""之后。预期的令牌可能包括:"声明@mean INT"

2 个答案:

答案 0 :(得分:2)

如果您想将变量声明为松散类型,则使用' @'定义用户定义的变量,您只需:

SET @mean := .5 

如果没有,那么也许你想在存储过程中定义一个变量,那么你可以定义如下:

DECLARE  mean INT;
SET mean = .5;      // not sure you mean INT here though?

您可能会发现此SO link useful用于描述我的sql变量的差异。另请查看mysql手册(user variables)/(local variables)。

我认为这里的一些混淆可能源于T-SQL在Mysql中使用的不同语法,但请阅读上述链接并使用适合您的方法。

答案 1 :(得分:1)

如果这是在存储过程中,则不需要@作为局部变量。 如果这只是您要创建的会话变量,则不需要DECLARE;只是SET @mean := 5;

我不是肯定的,但我认为DECLARE甚至可能在存储过程之外无效。