平時查詢數據庫時為了查詢更加快速,一般都會用到臨時表,如select * into #t from tableA ,但是如果數據過大,但但用臨時可能也很慢,這時候可以給臨時表建個索引,如CREATE INDEX IX_TempTable ON #T(字段1,字段2,字段3)。如果臨時表字段未知的時候怎么建立索引呢,可以用以下sql把臨時表的所有字段查出來,給所有字段建立索引
DECLARE @COL VARCHAR(1000)
SET @COL = ''
SELECT @COL = @COL + COLUMN_NAME + ',' FROM
TEMPDB.INFORMATION_SCHEMA.COLUMNS A
INNER JOIN(SELECT [NAME] FROM TEMPDB.dbo.sysobjects WHERE [ID] = OBJECT_ID(N'TEMPDB..#T'))B
ON A.TABLE_NAME = B.[NAME] AND A.ORDINAL_POSITION <= 3
ORDER BY ORDINAL_POSITION
print @COL
SET @COL = LEFT(@COL, LEN(@COL) - 1)
EXEC('CREATE INDEX IX_TempTable ON #T(' + @COL + ')')