请问一条SQL语句的性能问题 - MS-SQL Server / 基础类
SQL code:
DECLARE @i int
SET @i = 0
UPDATE table1 SET @i = @i + 1, id = @i WHERE id > @i AND id IN (SELECT TOP 100 PERCENT id from table1 ORDER BY id)
该语句实现 重新序列化id使id成为重1开始的连续记录, 而不改变记录的相对id的排序位置,使
id name
7 1
3 2
2 3
6 4
序列化后
id name
4 1
2 2
1 3
3 4
请问大家这语句有没有性能问题,,或者有没有更好的方法
SQL code:
with cte as(
select *,row_id=row_number() over(order by id) from table1
)
update cte
set id=row_id
update tb
set id = (select count(1) from tb where id < t.id) + 1
from tb t
SQL code:
create table tb(id int,name varchar(10))
insert into tb values(7 ,'1')
insert into tb values(3 ,'2')
insert into tb values(2 ,'3')
insert into tb values(6 ,'4')
go
update tb
set id = (select count(1) from tb where id < t.id) + 1
from tb t
select * from tb
drop table tb
/*
id name
----------- ----------
4 1
2 2
1 3
3 4
(所影响的行数为 4 行)
*/
{
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP
参考:http://hi.baidu.com/toiota ......
1。怎样使xp_cmdshell能完整输出超过255个字符的字符串。
2。select 时,检索速度是与from后的 TABLE顺序有关,还是与where条件的顺序有关(TABLE数据多少 )
在系统属性设定里有个选项,可以修改单字段输出字数限制. ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......