加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL Server 2005中动态命名索引?

发布时间:2020-12-12 07:02:00 所属栏目:MsSql教程 来源:网络整理
导读:由于大多数使用Sql Server的人都知道,你可以像这样声明一个临时表: create table #foo ( row_id int identity not null primary key,bar varchar(50) not null default 'YoMomma' ); …这将在此临时表上创建主键和默认约束;这些对象的名称将是唯一的,由Sql S
由于大多数使用Sql Server的人都知道,你可以像这样声明一个临时表:
create table #foo 
    (
    row_id int identity not null primary key,bar varchar(50) not null default 'YoMomma'
    );

…这将在此临时表上创建主键和默认约束;这些对象的名称将是唯一的,由Sql Server动态创建.

是否可以在创建表后为其创建动态命名的索引?我有一种情况,使用临时表的存储过程可能同时运行多个实例,我想提高性能,而不会冒tempdb数据库中具有相同名称的对象之间的冲突的风险. CREATE INDEX命令需要显式索引名称.

我正在寻找一个不涉及动态SQL的解决方案,只需要动态名称.

解决方法

这不是问题.索引名称不必是唯一的.只有约束名称才有.

因此,例如,您可以在多个并发连接中运行它,没有任何问题

CREATE TABLE #T
(
C INT
)

CREATE UNIQUE CLUSTERED INDEX ix on #T(C)

但这会在并发下失败

ALTER TABLE #T
ADD CONSTRAINT UQ UNIQUE NONCLUSTERED (C)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读