在Azure SQL数据仓库中的临时表上索引



Azure SQL数据仓库是否支持临时表上的任何索引?在https://learn.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-tables-tables-pormorary。

一次尝试,我收到了:

 Cannot create a non-clustered index on a temporary table. 

该措辞推断出一个群集索引可以放在临时表上?

在我的一个项目使用临时表中,在几个列中带有索引,并在选项上添加新列对我来说至关重要。(临时表也不支持Alter表)。标准表不是选项,因为每个查询运行必须拥有自己的表。

最后,我使用了可以用作临时表的东西,但实际上不是临时表。我正在创建一个标准表,但使用GUID作为名称,并将名称分配给变量。因此,我使用@mysemitempt的不是#temptable,但仅适用于生成的代码。因此,我必须使用sp_executesql运行该代码。波纹管示例:

declare @MySemiTempTable  NVARCHAR(MAX)
declare @sql  NVARCHAR(MAX)
set @MySemiTempTable = 'TMP_' + CAST(NEWID () AS NVARCHAR(37))
set @sql = 'CREATE TABLE ['+ @MySemiTempTable + '] (Column1 [int], Column2 NVARCHAR(50))'
EXECUTE sp_executesql @sql
set @sql = 'INSERT INTO ['+ @MySemiTempTable + ']   VALUES (1, ''test1'')'
EXECUTE sp_executesql @sql
set @sql = 'create unique index column1 on  ['+ @MySemiTempTable + '] (column1)'
EXECUTE sp_executesql @sql
set @sql = 'select * from  ['+ @MySemiTempTable + '] '
EXECUTE sp_executesql @sql
set @sql = 'drop table   ['+ @MySemiTempTable + '] '
EXECUTE sp_executesql @sql

群集索引在温度表上支持。例如:

CREATE TABLE #temp_table   
    ( 
    c1 integer
    ,c2 integer
    )  
     WITH (  CLUSTERED INDEX (c1 ASC) )   

;

最新更新