【问题标题】:default keyword with unique default value in mssqlmssql中具有唯一默认值的默认关键字
【发布时间】:2015-02-05 18:33:50
【问题描述】:

我想在我的Database 中的表格 中添加一个。由于该特定 table 中已经存在多个数据,MSSQL 不允许我添加非 Null 字段。所以我可以使用默认关键字来解决这个问题并运行下面提到的Query -

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

但现在我想将"OCF_Internal_ID" 字段设为Primary key,并且我需要在该特定字段的每条记录中插入唯一值。请给我任何建议。

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

【问题讨论】:

  • 为什么是varchar(50) 而不是数字和identity?还是uniqueidentifier
  • 听起来你不在乎价值是什么。你为什么不修改表并添加一个 Int Identity Primary Key Clustered 列而不是一个 varchar(50) ,这会使主键很差。

标签: sql-server sql-server-2008 default-value unique-constraint


【解决方案1】:

您可以使用以下选项之一

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2014-10-24
    相关资源
    最近更新 更多