Questions tagged «table-variable»


8
在T-SQL中选择表变量
有一个复杂的SELECT查询,我想从中将所有行插入表变量中,但是T-SQL不允许这样做。 同样,不能在SELECT INTO或INSERT EXEC查询中使用表变量。 http://odetocode.com/Articles/365.aspx 简短示例: declare @userData TABLE( name varchar(30) NOT NULL, oldlocation varchar(30) NOT NULL ) SELECT name, location INTO @userData FROM myTable INNER JOIN otherTable ON ... WHERE age > 30 table变量中的数据以后将用于将其插入/更新回不同的表中(大多数情况下是对相同数据的复制,并进行了较小的更新)。这样做的目的是使脚本比SELECT INTO直接放入正确的表中更易于理解和自定义。性能不是问题,因为rowcount它很小,只有在需要时才手动运行。 ...或者只是告诉我我做错了什么。

6
什么时候应该在SQL Server中使用表变量与临时表?
我正在表变量中学习更多详细信息。它说临时表始终在磁盘上,而表变量在内存中,也就是说,表变量的性能优于临时表,因为表变量使用的IO操作少于临时表。 但是有时,如果表变量中的记录太多而无法包含在内存中,则该表变量将像temp表一样放在磁盘上。 但是我不知道“太多记录”是什么。100,000条记录?或1000,000条记录?我怎么知道我正在使用的表变量是在内存中还是在磁盘上?SQL Server 2005中是否有任何功能或工具可以测量表变量的规模,或者何时将表变量从内存放入磁盘时通知我?



6
如何在SQL Server中删除表变量?我是否应该这样做?
我在脚本中有一个表变量(不是存储过程)。两个问题: 如何删除表变量?删除表@varName会出现“错误的snytax”错误。 我应该一直这样做吗?我听说这是个好习惯。这样的小脚本真的有必要吗? 这是我的代码: Declare @projectList table( name varchar(40) NOT NULL); Insert Into @projectList Values ('BCR-00021') Select * From @projectList Drop Table @projectList -- does not work

8
如何在动态sql语句中使用表变量?
在存储过程中,我在过程之上声明了两个表变量。现在,我试图在动态sql语句中使用该表变量,但是在执行该过程时遇到此错误。我正在使用Sql Server 2008。 这就是我的查询的样子, set @col_name = 'Assoc_Item_' + Convert(nvarchar(2), @curr_row1); set @sqlstat = 'update @RelPro set ' + @col_name + ' = (Select relsku From @TSku Where tid = ' + Convert(nvarchar(2), @curr_row1) + ') Where RowID = ' + Convert(nvarchar(2), @curr_row); Exec(@sqlstat); 我得到以下错误, 必须声明表变量“ @RelPro”。必须声明表变量“ @TSku”。 我试图将表放在动态查询的字符串块之外,但无济于事。

11
我可以在T-SQL中遍历表变量吗?
无论如何,在T-SQL中循环遍历表变量吗? DECLARE @table1 TABLE ( col1 int ) INSERT into @table1 SELECT col1 FROM table2 我也使用游标,但是游标似乎没有表变量灵活。 DECLARE cursor1 CURSOR FOR SELECT col1 FROM table2 OPEN cursor1 FETCH NEXT FROM cursor1 我希望能够以与游标相同的方式使用表变量。这样,我可以在过程的一部分中对表变量执行一些查询,然后稍后对表变量中的每一行执行一些代码。 任何帮助是极大的赞赏。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.