技术开发 频道

向表中一列插入1-100的连续数

  【IT168技术文档】

  某天在BBS上看到一朋友问到这样的一个问题:

  求助:向表中一列插入1-100的连续数

  table A 中有BH字段(INT),怎么连续给BH赋值1-100,象下面的一样

BH
1
2
...
100

  根据常规的方法,我们会想到使用While来实现以上的功能。如,一朋友所写的这样:

CREATE TABLE TestTable(BH INT) GO SET NOCOUNT ON GO DECLARE @MyCounter INT SET @MyCounter = 1 WHILE (@MyCounter < 101) BEGIN INSERT INTO TestTable VALUES (@MyCounter ) SET @MyCounter = @MyCounter + 1 END GO SET NOCOUNT OFF GO select * from TestTable --drop table TestTable

  我看一下,突然想到一个使用变量的方法来实现,如下:

--建一个200行数据的测试表#Temp DECLARE @i int CREATE TABLE #Temp ([id] int, C1 nvarchar(20),BH int) SET @i=1 WHILE @i<=200 BEGIN INSERT INTO #Temp SELECT @i,CAST(@i+rand() as nvarchar(20)),null SET @i=@i+1 END SELECT * FROM #Temp --更新字段BH,更新行数为前100行 SET @i=0 UPDATE #Temp SET @i=@i+1 ,BH=@i WHERE [id] IN(SELECT TOP 100 [id] FROM #Temp) SELECT * FROM #Temp DROP TABLE #Temp
0
相关文章