我现在就是用存储过程,但不可避免地要update某个字段的值。
我说过,我的表很大,如何避免每次扫描整个表或重建索引?
我说过,我的表很大,如何避免每次扫描整个表或重建索引?
解决方案 »
- 求助一个sql语句?大家帮忙。
- sys.dm_os_wait_stats 等待的类型
- 求一条sql语句,在线等待!
- ---- 50分!求解一个触发器代码!-------
- 如何声明 text类型的变量?
- 帮我看看 有什么好思路查询出这个数据
- 紧急求助!运行SQL SERVER2005显示"未能加载包 Microsoft SQL Management Studio Package"
- 为什么数据类型的长度不能改变呢?
- 还是修改数据库结构的问题!!急
- win98se下mssql7,使用DTS到最后一步出错,全部是正版,安装过多台机器,个个如此,nt或2000下正常
- 请问如何在一个表里限定只显示某段日期范围内的记录?
- 大家来帮帮忙阿!
你建库时建流水号主键,并且禁止删除
那是不是简单.
如果允许删除,你将主键不设为标识,你自己写存储过程根据max值得到新记录的ID。
这样做绝对快快快...
呵呵
我的问题是Select then Update
select then update ##临时表 set MyNumber=MyNumber+100
如何实现绕回,即检索到最后几行时,又回到开头?
DECLARE @CUR INT
SELECT @CUR = CUR FROM TABLEA -- 存储当前的记录号
UPDATE TABLEA SET CUR = CUR + 100
SELECT TOP 100 * FROM TABLEB WHERE FIELDA > @CUR
请再次指教
SELECT @CUR = CUR FROM TABLEA -- 存储当前的记录号
UPDATE TABLEA SET CUR = CUR + 100
SELECT TOP 100 * FROM TABLEB WHERE FIELDA > @CUR
-----------------------------------------^^^-----???
SELECT @CUR = CUR FROM TABLEA -- 存储当前的记录号
if exists(SELECT * FROM TABLEB WHERE FIELDA>@CUR)
UPDATE TABLEA SET CUR = CUR + 100
else
UPDATE TABLEA SET CUR =100
select * from TABLEB WHERE FIELDA>@CUR-100 and FIELDA<@CUR