我有(另一個)關於索引的問題。我如何給主鍵約束命名?
我使用下面的代碼:
CREATE TABLE [dbo].[PnrDetails1](
[OId] [int] IDENTITY(1,1) NOT NULL ,
[file_name] [varchar](256) NOT NULL,
[gds_id] [int] NOT NULL,
[pnr_locator] [varchar](15) NOT NULL,
[first_cust_name] [varchar](50) NOT NULL,
[ticket_number] [varchar](20) NOT NULL,
[full_price] [decimal](18, 0) NOT NULL,
[currency_desc] [varchar](4) NOT NULL,
[user_name] [varchar](50) NOT NULL,
[save_time] [datetime] NOT NULL,
[update_time] [datetime] NOT NULL,
[clerk_id] [int] NOT NULL,
[isUpdated] [bit] NOT NULL,
[isDeleted] [bit] NOT NULL,
[pnr_file_id] [int] NOT NULL
) ON [PRIMARY]
ALTER TABLE [dbo].[PnrDetails1] ADD PRIMARY KEY CLUSTERED
(
[OId] ASC
)ON [PRIMARY]
這實際上是一個腳本,SQL Server 2008中爲我創造, 但是當我看對象資源管理器我看到一個醜陋的名稱索引(像PK_ PnrDetai _CB394B1958F2C25C)。我該如何改變它?如果是這樣?
我想你可能已經接受了錯誤的答案。問題是,「如何更改已存在的主鍵約束的名稱?」,而不是「我如何給一個尚不存在的主鍵約束命名?」,對嗎?雖然@marc_s給出的答案確實包含了解決方法,但他給出的腳本假定約束不存在。一位評論者甚至指出,丟棄/重新創建可能會非常昂貴,特別是如果它完成了所有操作,都會改變名稱。應該清楚,更好的答案是隻有在可能的情況下才會更改元數據。 –