SQLServer变量赋值的⽅法
SQL Server变量赋值我们经常会遇到,下⾯就为您介绍变量赋值的两种⽅法,希望可以对您学习SQL Server变量赋值有所帮助。
SQL Server中对已经定义的SQL Server变量赋值的⽅式⽤两种,分别是SET和SELECT。
对于这两种SQL Server变量赋值⽅式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两种⽅式还
是有很多差别的。
SQL Server推荐使⽤SET⽽不是SELECT对变量进⾏赋值。当表达式返回⼀个值并对⼀个变量进⾏赋值时,推荐使⽤SET⽅法。
下⾯以具体⽰例来说明问题: create table chinadba1(
userid int ,
addr varchar(128)
)
go
insert into chinadba1(userid,addr) values(1,'addr1')
insert into chinadba1(userid,addr) values(2,'addr2')
insert into chinadba1(userid,addr) values(3,'addr3')
go
表达式返回多个值时,使⽤SET赋值 declare @addr varchar(128)
set @addr = (select addr from chinadba1)
/*
--出错信息为
服务器: 消息 512,级别 16,状态 1,⾏ 2
⼦查询返回的值多于⼀个。当⼦查询跟随在 =、!=、<、<=、>、>= 之后,或⼦查询⽤作表达式时,这种情况是不允许的。 */
go
表达式返回多个值时,使⽤SELECT赋值 declare @addr varchar(128) select @addr = addr from chinadba1
print @addr --结果集中最后⼀个 addr 列的值