2014-12-08 147 views
-1

我想将添加到我的中的。由于在该特定tableMSSQL已经存在几个数据不允许我添加一个不字段。因此,我可以使用默认的关键字来解决这个问题,运行下面提到Query -默认关键字,具有mssql中的唯一默认值

Alter table ServiceDetails 
    Add OCF_Internal_ID varchar(50) not null default 'OCF'; 

但现在我想使"OCF_Internal_ID"Primary key,我需要插入唯一值提出的特定的每一条记录。请给我任何建议。

如何将唯一值添加到所有现有记录?

+0

为什么'VARCHAR(50)',而不是数字和“身份”?或'uniqueidentifier'? – 2014-12-08 06:12:25

+0

听起来像你不在乎什么是价值。为什么不修改表并添加一个Int Identity主键群集列而不是使用糟糕的主键的varchar(50)。 – 2014-12-08 06:12:38

回答

0

您可以使用这些选项

Alter table ServiceDetails 
    Add OCF_Internal_ID integer NOT NULL IDENTITY (1,1); 

OR

Alter table ServiceDetails 
    Add OCF_Internal_ID uniqueidentifier NOT NULL default newid(); 

之一,然后运行该做定义主键约束

ALTER TABLE ServiceDetails 
ADD CONSTRAINT PK_ServiceDetails_OCF_Internal_ID PRIMARY KEY CLUSTERED (OCF_Internal_ID); 
GO