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

前端之家收集整理的这篇文章主要介绍了在SQL Server 2005中动态命名索引?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于大多数使用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解决方案,只需要动态名称.

@R_301_323@

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

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

CREATE TABLE #T
(
C INT
)

CREATE UNIQUE CLUSTERED INDEX ix on #T(C)

但这会在并发下失败

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

猜你在找的MsSQL相关文章