• SQL Server主键约束


    PRIMARY KEY简介:

     主键是唯一标识表中每一行的列或一组列。可以使用PRIMARY KEY约束为表创建主键。 如果主键只包含一列,则可以将 PRIMARY KEY 约束定义为列约束:

    CREATE TABLE table_name (

     pk_column data_type PRIMARY KEY,

     ...

    );

    如果主键有两列或更多列,则必须使用 PRIMARY KEY 约束作为表约束:

    CREATE TABLE table_name (

     pk_column_1 data_type,

     pk_column_2 data type,

     ...

    PRIMARY KEY (pk_column_1, pk_column_2)

     );

    每个表只能有一个主键。参与主键的所有列必须定义为 NOT NULL 。

    如果没有为这些列指定 NOT NULL 约束,SQL Server会自动为所有主键列设置 NOT NULL 约束。 在创建主键时,SQL Server还会自动创建唯一的聚簇索引(如果指定,则为非聚集索引)。

    PRIMARY KEY约束示例:

     以下示例创建一个包含主键的表,该主键包含一列:

    CREATE TABLE sales.activities (

     activity_id INT PRIMARY KEY IDENTITY,

    activity_name VARCHAR (255) NOT NULL,

    activity_date DATE NOT NULL

     );

    在此 sales.activities 表中, activity_id 列是主键列。 activity_id 列包含唯一值。 IDENTITY 属性用于 activity_id 列以自动生成唯一的整数值。 以下语句创建一个名为 sales.participants 的新表,其主键由两列组成:

    CREATE TABLE sales.participants(

     activity_id int,

    customer_id int,

    PRIMARY KEY(activity_id, customer_id)

    );

    在此示例中, activity_id 或 customer_id 列中的值可以重复,但两列中的每个值组合必须是唯一 的。 通常,表始终具有在创建时定义的主键。 但是,有时,现有表可能由于某种原因而没有定义主键。 在这种情况下,可以使用 ALTER TABLE 语句向表中添加主键。请考虑以下示例。 以下语句创建没有主键的表:

    CREATE TABLE sales.events( event_id INT,

    event_name VARCHAR(255),

     start_date DATE NOT NULL,

    duration DEC(5,2)

    );

    要将 event_id 列作为主键,请使用以下 ALTER TABLE 语句:

    ALTER TABLE sales.events ADD PRIMARY KEY(event_id);

  • 相关阅读:
    jenkins全局配置问题
    “先进计算”领域仍待开拓,猿代码做先进计算人才的引路人
    GPT-4o
    JS-Vue-组件
    网约车司机被取代?百度获得中国首个全无人驾驶出租车服务许可证
    JVM快速入门
    虚幻引擎ue5游戏运行界面白茫茫一片,怎么处理
    企业防护DDoS的注意事项,你知道几个?
    nordic 52832中添加RTT打印
    【Arcpy】提取遥感影像像元值
  • 原文地址:https://blog.csdn.net/hjb_nice/article/details/125904856