我有一个存储过程,只需几个步骤。其中两个步骤需要使用DECLARE
TABLE
,但我不需要同时使用这些表格。为SQL存储过程删除或声明新的临时表是否更好?
这两个表都有2个BIGINT
列,最多可以有100行。
将两个表格或DELETE
声明并重新使用它是更好的做法吗?
编辑:如果你有兴趣,这是一个后续的this question
我有一个存储过程,只需几个步骤。其中两个步骤需要使用DECLARE
TABLE
,但我不需要同时使用这些表格。为SQL存储过程删除或声明新的临时表是否更好?
这两个表都有2个BIGINT
列,最多可以有100行。
将两个表格或DELETE
声明并重新使用它是更好的做法吗?
编辑:如果你有兴趣,这是一个后续的this question
设计将只有在创建第二个表一个非常小的开销存储过程。但是,如果它们具有相同的列,并且不需要数据,那么只需删除并重用。如果您有用于cursor free looping (last code example in this answer)的标识列,则可能需要创建第二个标识列。
首先,你不能truncate
表变量。您需要改为delete from
。对于如此少量的行,我认为这种方式会造成很小的差异。随你的代码更易读取。
它的游标是免费的,使用'MERGE'语句。没有循环,只需几个步骤。我怀疑我的具体用途在性能上没有明显的差异,但我只是在寻找关于未来处理这个潜在更大表的通用指南。 – Matthew 2010-09-01 15:43:18
我会概率不会使用表变量@variable用于大数据,常规#Temp表会更好地执行大量的行 – 2010-09-01 15:47:09
您将在哪里绘制使用变量而不是#Temp的行? – Matthew 2010-09-01 15:49:30