我一直在玩动态SQL来尝试实现这一点,这有点可能,但不是最顺利的方法。
所以我想知道是否有办法创建随机名称临时表(## show101,## show24,## show576)。
我想要实现的是一个临时表,其中包含来自不同表的某些数据。然后我只是操纵临时表中的数据并给出输出。
我正在使用SQL Server 2008。
答案 0 :(得分:1)
您的示例是使用全局临时表。这些内容在删除之前一直保留,并且可以在不同的连接之间共享。这就是他们“全球化”的原因。在您的情况下,它们可以在动态语句的执行和外部语句之间共享。
我建议看起来更像这样的代码:
create table #MyTempTable . . . <as whatever>
declare @sql nvarchar(max) = '
select <whatver>
into #temp1
. . .
do some more work on #temp1 if you like
--Finally
select * from temp1
';
insert into #MyTempTable
exec(@sql);
这会将数据从动态范围“移动”到外部范围,您可以将其用于其他目的。您现在可以在#MyTempTable中访问它。