我要做的是使用SELECT INTO语句复制表。
创建表后,我也希望复制索引。
所以我使用的代码如下:
SELECT * INTO TableCopy FROM Table
然后:
ALTER TABLE TableCopy ADD CONSTRAINT pkGUID PRIMARY KEY ([GUID])
CREATE INDEX ixIndexName ON TableCopy (CountryCode)
当我执行索引SQL时,出现索引已存在于目录中的错误。我不认为索引名称必须是唯一的,我认为它们可以在不同的表格中重复。
如果我通过管理工作室创建索引,它会接受索引名称。
我在这里缺少什么?
感谢。
答案 0 :(得分:7)
我不认为索引名称必须是唯一的,我认为它们可以在不同的表格中重复。
没有。它们必须在表/视图中是唯一的。
在SSMS内执行时,删除现有索引并创建一个新索引。
来自MSDN上的CREATE INDEX (Transact-SQL):
index_name - 索引的名称。 索引名称在表格或视图中必须是唯一的,但在数据库中不必是唯一的。
(强调我的)
但是,pkGUID
不是索引 - 它是约束,并且这些必须在数据库中是唯一的。