如何为主键约束命名?

Dar*_*dar 1 sql indexing sql-server-2005 sql-server-2008

我有(另一个)关于索引的问题。

我使用以下代码:

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]
Run Code Online (Sandbox Code Playgroud)

这实际上是为我创建的 sql server 2008 脚本,但是当我查看对象资源管理器时,我看到索引的丑陋名称(类似于 PK_ PnrDetai _CB394B1958F2C25C)。我怎样才能改变它?如果是这样?

Aar*_*and 5

虽然我同意 @marc_s 的观点,即您应该始终预先声明这些名称,但我不同意您必须删除并重新创建:

EXEC sp_rename 'PK_PnrDetai_CB394B1958F2C25C', 'my_new_shiny_name', OBJECT;
Run Code Online (Sandbox Code Playgroud)