Sql 在多列表的列中插入特定的有界数字

Sql 在多列表的列中插入特定的有界数字,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,我想更新表中的id列,并将其插入到第1列到第600列,如下所示: 更新前的表: id name date comment ------------------------------ 1 jack 9/10/12 null 100 david 9/11/12 20 158 sara 9/12/12 null . 更新后的表: 1 jack 9/10/12 null 2 david 9/11/12

我想更新表中的id列,并将其插入到第1列到第600列,如下所示:

更新前的表:

id   name     date     comment
------------------------------
1    jack     9/10/12   null
100  david    9/11/12   20
158  sara     9/12/12   null
.
更新后的表:

1    jack     9/10/12   null
2    david    9/11/12   20
3    sara     9/12/12   null
.
597   "     "      "
598   "     "      "
599   "     "      "
600   "     "      "

你需要做的第一件事是找出你有多少行

声明@COUNTER INT SET@COUNTER=从tbl_tablename中选择COUNT*

然后声明一个临时表,除了ID之外,它的结构几乎完全相同

声明@tmp_表 P_Id int主键标识, 这个领域的其他部分都是一样的

现在,在新表中插入除id之外的所有内容

插入@tmp_表格 从tbl_tablename中选择名称、日期、注释

清除原始表格

从tbl_表名中删除

并插入临时表中的值

插入tbl_表名,从@tmp_表中选择*

现在可以添加附加值


而@COUNTER如果Id是主键,那么它们是否不在其他表中引用?不建议更新PK,但如果这样做,您希望如何更新其他引用表?是否需要更改顺序排序的ID?不要那样做。如果另一个表上的记录依赖于此,该怎么办?很抱歉,SQL Server 2000不支持CTE或排名函数ROW_NUMBER,这就是您得到该错误的原因。我给你的问题贴上了标签,等着有人来解决。id不是主键。tanxIs标识了一个标识列吗?这些是不可更新的。