You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建临时表时如何不指定索引的显式名称?

临时表创建时无需指定索引显式名称的实现方法

你可以直接省略索引的显式名称,让SQL Server自动生成唯一的索引名称,这样既能满足需求,又能避免多会话下的索引名称冲突问题。

原代码示例

CREATE TABLE [#Test1]
(
    [ID] INT IDENTITY(1, 1) PRIMARY KEY,
    [Member_BK] VARCHAR(20),
    [Company] VARCHAR(20),
    [Facility_Name] VARCHAR(200),

    INDEX [IX_#Final_1] ([Member_BK], [Company])
)

修改后的代码(无需指定索引名称)

CREATE TABLE [#Test1]
(
    [ID] INT IDENTITY(1, 1) PRIMARY KEY,
    [Member_BK] VARCHAR(20),
    [Company] VARCHAR(20),
    [Facility_Name] VARCHAR(200),

    -- 省略索引名称,由SQL Server自动生成带唯一标识的索引名
    INDEX ([Member_BK], [Company])
)

原理说明

当显式指定固定索引名称时,若多个会话同时创建同名临时表,会因索引名称重复触发报错。而让SQL Server自动生成索引名称时,系统会为每个会话的临时表索引生成包含会话唯一标识的名称,确保跨会话的索引名称不冲突,彻底解决你遇到的问题。

另外针对你提到的主键同名问题,你当前的主键写法已经是省略显式名称的模式(PRIMARY KEY后未指定名称),系统会自动生成唯一主键名,无需额外修改。

内容的提问来源于stack exchange,提问作者LCJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:25:04