读书人

表变量能实现truncate功能吗?解决方法

发布时间: 2012-01-24 23:11:54 作者: rapoo

表变量能实现truncate功能吗?
我在存储过程中,由于有很多次循环,因此不用临时表,而是用了表变量

declare @tmp table
(
iid int identity(1,1),
name varchar(20),
age int
)

我需要iid每次循环往@tmp插值的时候都能自动从1开始,
但是 truncate table @tmp 不能用, 也不能 drop table

这样 iid 越长越大,无法满足业务需要。

有没有什么方法可以解决??


实际业务中,我需要取 @tmp 表中的 第 N 行记录。

谢谢

[解决办法]
改用临时表吧。
[解决办法]
表变量不支持Truncate table,也不能动态添加或删除列。
[解决办法]
由于有很多次循环,因此不用临时表
--------------------------------

如果处理的数据量很大,建议使用临时表。

如果处理的数据量比较小,使用表变量固然可以提高速度,但与使用临时表的速度差别很小,完全可以通过硬件性能弥补,可以忽略不计。
[解决办法]
如果这样的华,iid不要做为identity(1,1)的,改为人为的处理增长好了
[解决办法]
CathySun118(斯年)
对的
[解决办法]
临时表是可以用
truncate table #

表变量不行
[解决办法]
自己控制id吧,id本来就没什么实际意义,只是表示一个顺序而已

读书人网 >SQL Server

热点推荐