我有(另一个)关于索引的问题。我如何给主键约束命名?
我使用下面的代码:
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给出的答案确实包含了解决方法,但他给出的脚本假定约束不存在。一位评论者甚至指出,丢弃/重新创建可能会非常昂贵,特别是如果它完成了所有操作,都会改变名称。应该清楚,更好的答案是只有在可能的情况下才会更改元数据。 –