如何在SQL-Server中删除表变量?我应该甚至这样做吗?

我在脚本中有一个表变量(不是存储过程)。两个问题:如何在SQL-Server中删除表变量?我应该甚至这样做吗?

  1. 如何删除表变量? Drop Table @varName给出“错误的snytax”错误。
  2. 我应该一直这样做吗?我听说这是一个很好的做法。这样的小脚本真的有必要吗?

这里是我的代码:

Declare @projectList table(

name varchar(40) NOT NULL);

Insert Into @projectList

Values ('BCR-00021')

Select *

From @projectList

Drop Table @projectList -- does not work

回答:

表变量是自动的本地和自动删除 - 您不必担心。

回答:

表变量就像int或varchar变量一样。

你不需要放下它们。它们与int或varchar变量具有相同的scope规则

变量的范围是可引用该变量的Transact-SQL语句的范围。变量的作用域从声明的地方持续到声明的批处理或存储过程结束。

回答:

就像TempTables一样,本地表变量也在TempDB中创建。表变量的范围是它声明的批处理,存储过程和语句块。它们可以作为过程之间的参数传递。当您关闭创建它们的会话时,它们会自动丢弃。

回答:

但是你们都忘了提及,如果在一个循环内使用一个变量表,它将需要在循环内再次加载数据之前清空(删除@table)。

回答:

如果别人遇到这个......你真的需要放弃它像,而在一个循环中,你可以从表变量全部删除:

DELETE FROM @tableVariableName 

以上是 如何在SQL-Server中删除表变量?我应该甚至这样做吗? 的全部内容, 来源链接: utcz.com/qa/257438.html

回到顶部