首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

向大家请问一个有关问题,在一句update语句中,变量难道可以自增吗?有代码示例

2012-01-21 
向大家请教一个问题,在一句update语句中,变量难道可以自增吗?有代码示例大家将下列代码贴到查询分析器中,

向大家请教一个问题,在一句update语句中,变量难道可以自增吗?有代码示例
大家将下列代码贴到查询分析器中,运行一下,你会发现在update语句中,一个变量竟然会自增,自增的次数等于表的记录条数。
就是这一句:update   #   set   @i=@i+1,自增=@i
在一句代码中,竟然变量可以自增。这是什么道理呀?

======================================
use   northwind
go

select   orderid,customerid,1   as   自增   into   #
from   orders   order   by   orderid   desc

declare   @i   int
set   @i=0
update   #   set   @i=@i+1,自增=@i

select   *
from   #

--drop   table   #


[解决办法]
当然啊,简单意义上说就是相当于循环,次数为满足条件的纪录条数
[解决办法]
没错,在update的记录顺序上,每记录执行一次@i=@i+1。
[解决办法]
update # set自增=@i, @i=@i+1
====
自增, @i的赋值是同时进行的(并行的)
也就是说自增赋值时, @i的值还没有更新
[解决办法]
变量的赋值优先。


先执行变量自增,再将变量更新到字段。
[解决办法]
好语句
[解决办法]
自增, @i的赋值是同时进行的(并行的)
也就是说自增赋值时, @i的值还没有更新
-----------------
应该不是这样的,因为@i的初值为0,可是第一次为字段赋值时,@i的值是1呀.
所以说是先执行变量自增.然后赋给字段的.所以变量的赋值优先于字段的赋值
[解决办法]
这样的情况我也遇到过,自增,@i的赋值都是并行的,更新的结果都是一样的

热点排行