[英]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.