首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用存储过程时declare @variablename和declare variablename的区别

使用存储过程时declare @variablename和declare variablename的区别
EN

Stack Overflow用户
提问于 2014-08-01 20:58:57
回答 1查看 254关注 0票数 1

我想知道@variablenamevariablename的区别是什么。所有的帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-08-01 21:13:03

代码语言:javascript
复制
variablename

局部变量

局部变量在存储过程中声明,并且仅在BEGIN…中有效在其中声明它们的END块。局部变量可以具有任何SQL数据类型。

代码语言:javascript
复制
@variablename

用户变量

在MySQL存储过程中,引用用户变量时在用户变量名前加上与号(@) (例如,@x和@y)。可以在一条语句中将值存储在用户定义的变量中,然后在稍后的另一条语句中引用它。这使您能够将值从一个语句传递到另一个语句。用户定义变量是特定于会话的。也就是说,由一个客户端定义的用户变量不能被其他客户端看到或使用。当客户端退出时,给定客户端会话的所有变量都会自动释放。

在MySQL中,变量var1和@var1是两个不同的东西。@var1是一个用户会话变量,它在活动会话期间保持不变。另一个对于存储过程来说是本地的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25080850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档