[英]Creating indexes with T-SQL returns index exists error
我想做的是使用SELECT INTO语句制作表的副本。
创建表后,我也想复制索引。
所以我使用的代码如下:
SELECT * INTO TableCopy FROM Table
然后:
ALTER TABLE TableCopy ADD CONSTRAINT pkGUID PRIMARY KEY ([GUID])
CREATE INDEX ixIndexName ON TableCopy (CountryCode)
当执行索引SQL时,出现错误,表明目录中已经存在索引。 我认为索引名称不必唯一,我认为它们可以在不同的表中重复。
瞧,如果我通过Management Studio创建索引,它会接受索引名称。
我在这里想念什么?
谢谢。
我认为索引名称不必唯一,我认为它们可以在不同的表中重复。
否。它们在表/视图中必须是唯一的。
在SSMS中执行时,它将删除现有索引并创建一个新索引。
从MSDN上的CREATE INDEX(Transact-SQL) :
index_name-是索引的名称。 索引名称在表或视图中必须唯一,但在数据库中不必唯一。
(强调我的)
但是, pkGUID
不是索引-它是一个约束 ,并且这些在数据库中必须是唯一的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.