欢迎投稿

今日深度:

T-SQL查询进阶--变量(1)(2)

局部变量的声明

局部变量的声明必须以"DECLEAR"作为关键字,变量的命名必须以"@"作为变量名的第一个字符.必须为所声明的变量提供一个数据类型和数据长度.如:

局部变量的数据类型不能为Text,ntext,和Image类型,当对于字符型变量只提供数据类型没有提供数据长度时,数据长度默认为1.

一切只声明没有赋值的局部变量的初始值都为”NULL”.

局部变量的赋值

在T-SQL中,局部变量的赋值是通过”Set”关键字和”Select”关键字实现的.

实际上,使用Set或者是Select取决于下面几个因素

1.当对多个变量赋值时

SELECT关键字支持多个变量赋值,而SET关键字只支持一次对一个值赋值

2.当赋值时表达式返回值的个数

使用SET进行赋值时,当表达式返回多个值时,报错.而SELECT关键字在赋值表达式返回多个值时,取最后一个.

比如,假设XXX表只有以下几条数据:

当使用SELECT关键字进行时,可以取返回值的最后一个。

3.当表达式未返回值时

使用SET对局部变量赋值时,如果赋值表达式未返回值,则局部变量变为NULL,而SELECT对表达式赋值时,如果表达式未返回值,则局部变量保持原值.

4.当…你是一个标准爱好者时

坚决使用SET关键字对局部变量赋值吧,因为SET是ANSI标准……

5.当…你懒得记上述何时使用SET或是何时使用SELECT时

好吧,我承认我也很懒.那你按照一个简单的方式区别:当你的赋值语句需要引用一个数据源(表)时,使用SELECT.除此之外,使用SET.


www.htsjk.Com true http://www.htsjk.com/shujukujc/18763.html NewsArticle 局部变量的声明 局部变量的声明必须以DECLEAR作为关键字,变量的命名必须以@作为变量名的第一个字符.必须为所声明的变量提供一个数据类型和数据长度...
评论暂时关闭