现在需要一次性往表里插入多条数据,该表没有设置自动编号的字段,请问各位知不知道SQL SERVER 2000里有没有获得行号的函数啊?
就是想取得新追加行的行号值,然后把该值赋给一个字段,实现一次性添加的多条数据的该字段为递增
用@@IDENTITY 似乎是必须有自动编号的字段才能取到值,我查了下在SQL SERVER 2005中有ROW_NUMBER() 函数可以获得行号,不知道2000里面有没有什么办法获得这样的行号?
数据库暂时不能改用2005,还望各位大哥救命啊!
就是想取得新追加行的行号值,然后把该值赋给一个字段,实现一次性添加的多条数据的该字段为递增
用@@IDENTITY 似乎是必须有自动编号的字段才能取到值,我查了下在SQL SERVER 2005中有ROW_NUMBER() 函数可以获得行号,不知道2000里面有没有什么办法获得这样的行号?
数据库暂时不能改用2005,还望各位大哥救命啊!
1.增加ID列,设置为IDENTITY,并且为该列设置UNIQUE约束,以防止ID重复.
2.获取新行的ID请查看下面帖子中邹建演示的方法,尤其是多用户并发情况下使用触发器获得当前连接插入生成的ID的方法.
http://community.csdn.net/Expert/topic/4868/4868036.xml?temp=.9568903
也就是一次性往table1里添加多条数据,用mschen(Co-ok)的方法添加的数据的行号都是一个相同的数字,因为insert的时间基本上是同一时间count(*)得出的值一致,现在就是希望能得到累加的行号而且不用系统带的自动递增,能有解决的方案吗?
insert into table1(column1) select data from table2
declare @i int
update table1 set column2=@i,@i=@i+1