Tom*_*Tom 0 t-sql sql-server indexing sql-server-2008
我要做的是使用SELECT INTO语句复制表.
创建表后,我也想复制索引.
所以我使用的代码如下:
SELECT * INTO TableCopy FROM Table
Run Code Online (Sandbox Code Playgroud)
然后:
ALTER TABLE TableCopy ADD CONSTRAINT pkGUID PRIMARY KEY ([GUID])
CREATE INDEX ixIndexName ON TableCopy (CountryCode)
Run Code Online (Sandbox Code Playgroud)
当我执行索引SQL时,我得到一个错误,索引已存在于目录中.我不认为索引名称必须是唯一的,我认为它们可以在不同的表中重复.
如果我通过管理工作室创建索引,它会接受索引名称.
我在这里错过了什么?
谢谢.
我不认为索引名称必须是唯一的,我认为它们可以在不同的表中重复.
不,它们必须在表/视图中是唯一的.
在SSMS中执行时,它会删除现有索引并创建一个新索引.
从MSDN上的CREATE INDEX(Transact-SQL):
index_name - 索引的名称.索引名称在表或视图中必须是唯一的,但在数据库中不必是唯一的.
(强调我的)
但是,pkGUID它不是索引 - 它是一个约束,并且这些必须在数据库中是唯一的.