
求助:向表中一列插入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
============ 欢迎各位老板打赏~ ===========

