在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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |