Create Table OrderingThings
(
Id Int Not Null, -- 编号,也作为排序号处理
Content Text Not Null, -- 事件内容
)
Go-- 主键约束
Alter Table OrderingThings
Add Constraint PK_Id Primary Key (Id)
Go这是我写的表,就两个字段。此表使用一段时间后,Id 号会呈上涨趋势。
所以,我就写了一个整理 Id 的存储过程。如下:1 Create Procedure proc_ArrangeId
2 As
3 Declare @count int -- 记录表中有多少条记录
4 Set @count = ( Select count(*) From OrderingThings )
5 Declare @i int -- 用作循环变量
6 Set @i = 1
7 While(@i <= @count)
8 Begin
9 Update OrderingThings Set Id = @i
10 Where Id = (
11 Select Top 1 Id From OrderingThings -- 查询表中第一条记录,
                                                       -- 第二条记录,…,最后一条记录
12 Where Id Not In ( Select Top @i-1 Id From OrderingThings )
13 )
14 Set @i = @i + 1
15 End但是,这个过程出现了一个问题:
服务器: 消息 170,级别 15,状态 1,过程 proc_ArrangeId,行 12
第 12 行: '@i' 附近有语法错误。
这个错误难道是 Top 关键字后不能用变量么?
请各位看官帮帮小弟~
小弟先谢谢各位了!