我正在开发一个Task,我应该从数据库的所有表中获取数据而不知道表名。我打算做的是编写一个查询来获取所有表名和列名,并将其存储在临时表中。
获得表名和列名后,我必须将值存储到@Table_Name
和@Column_Name
等变量中。然后我必须在循环中调用表名,并且必须编写这样的查询
"select * from '''+@Table_Name+''' where '''+@Column_Name+''' = 1"
之前我使用cursor
来获取值并将其存储在变量中并在循环中调用它。但似乎光标消耗的时间和内存更多。所以我想用临时表来改变它。
我的疑问是,是否可以将临时表值分配给变量以便以后使用它。如果可能的话怎么做?
答案 0 :(得分:0)
我觉得你的想法可能不起作用,因为你试图在SQL Server中加入数组的概念。 SQL Server没有数组,但它有表。您可以通过创建临时表来获取所需的数据。通过触发类似的查询插入其中
select * from sys.tables
。
然后尝试通过加载此表中的每一行来执行操作。完成工作后,请务必放下表格。