【问题标题】:Create INDEX on Table Variable [duplicate]在表变量上创建索引 [重复]
【发布时间】:2016-02-18 15:02:38
【问题描述】:

我正在尝试在表变量上创建索引,这可能吗?

DECLARE @RDTABLE TABLE (TLCDE VARCHAR(12), TLTYP VARCHAR(2), TLEFFDAT DATETIME, TLRATFCT DECIMAL(29,6))

INSERT INTO  
    @RDTABLE
SELECT
    TLCDE
,   TLTYP
,   TLEFFDAT
,   TLRATFCT
FROM    
    BT_TR
WHERE
    TLTYP = 'TX'

通常我会这样创建索引:

CREATE NONCLUSTERED INDEX IX_RDTABLE ON RDTABLE ([TLTYP],[TLEFFDAT]) 
INCLUDE ([TLCDE],[TLRATFCT]) 

【问题讨论】:

    标签: sql sql-server sql-server-2014


    【解决方案1】:

    是的,您可以像这样直接在表变量的脚本中创建索引:

    DECLARE @RDTABLE TABLE (TLCDE VARCHAR(12), TLTYP VARCHAR(2), TLEFFDAT DATETIME, TLRATFCT DECIMAL(29,6), INDEX [index_name] [NONCLUSTERED/CLUSTERED](column_name))
    

    考虑是否是使用临时表而不是表变量的情况,因为根据情况可能更好地处理索引

    此功能仅适用于 sqlserver 2014 版本

    我在网上找到了这篇文章:

    http://www.brentozar.com/archive/2014/04/table-variables-good-temp-tables-sql-2014/

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 2015-08-14
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      相关资源
      最近更新 更多