像我申报表...我怎么能放下,我在我的SP
declare @tempTable TABLE
(Id bigint identity(1,1),
bKey int,
DateT DateTime,
Addres nvarchar(max),
unit bigint)
已经声明了一个表,我想砸......但是即时通讯stucked堂妹DROP TABLE n截断不加工。
ani ideaaa ... ???
像我申报表...我怎么能放下,我在我的SP
declare @tempTable TABLE
(Id bigint identity(1,1),
bKey int,
DateT DateTime,
Addres nvarchar(max),
unit bigint)
已经声明了一个表,我想砸......但是即时通讯stucked堂妹DROP TABLE n截断不加工。
ani ideaaa ... ???
表变量只在它们的范围内存在,在您的情况下,存储过程的持续时间。一旦程序完成,它将自动删除。
你可能会想临时表:
CREATE TABLE #MyTempTable
有临时表和表变量之间的差别:
http://sqlnerd.blogspot.com/2005/09/temp-tables-vs-table-variables.html
一个更好的链接:
http://www.sql-server-performance.com/articles/per/temp_tables_vs_variables_p1.aspx
您不必删除表变量(即那些以@开始)
因为我想重新调整它..我我在while循环中声明此表...每当它被声明其ID列值不会启动从0,种子也给出了同样的错误,必须“声明标量变量@temTable” – Tami 2010-07-16 06:32:07
你为什么要删除表变量?表变量的作用域仅在声明的存储过程...
检查这篇文章... Table Variables In T-SQL
UPDATE
使用#temptable通过@Adam ... 的建议然后截断TABLE #temptable ,而不是DROP TABLE;这种方式不需要在循环内重新创建它。
您已将表格声明为表格变量。它只会在存储过程期间存在。当程序结束时,它会自动“放弃”(不再存在更准确,因为它从来没有像其他表格那样存在)。你不能手动删除它们。
您创建了一个保存在变量中的临时表。只有存储过程正在执行时它才存在。 SP完成后,临时表将不复存在,并自动删除。
编辑:
你可以尝试通过运行存储过程测试,然后尝试在运行一个选择查询您的@tempTable
亚我同意..但我怎么能重新声明它在一个循环,以便其ID号柱将从零开始。我的意思是我怎么可以种它.... dbcc comaamd种子也无法改变@tempTable(表变量) – Tami 2010-07-16 06:57:47
“不工作”是什么意思?他们是否因错误消息而失败?什么是错误? – Jason 2010-07-14 12:13:50
它提供的错误,“必须声明标量变量@tempTable” – Tami 2010-07-16 06:31:16