簡體   English   中英

使用T-SQL創建索引會返回索引存在錯誤

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM