欢迎投稿

今日深度:

sqlserver设置主键的实现步骤,

sqlserver设置主键的实现步骤,


目录
  • 开始之前
    • 限制和局限
  • 设置主键并置为非空
    • 更改已经建好的表中主键列的字符类型

      开始之前

      限制和局限

      • 一个表只能包含一个 PRIMARY KEY 约束。

      • 在 PRIMARY KEY 约束中定义的所有列都必须定义为 NOT NULL。 如果没有指定为 Null 性,则加入 PRIMARY KEY 约束的所有列的为 Null 性都将设置为 NOT NULL

      创建主键会自动创建相应的唯一群集索引、聚集索引或非聚集索引(如果这样指定)

      若要重新定义主键,则必须首先删除与现有主键之间的任何关系,然后才能创建新主键。 此时,将显示一条消息警告您:作为该过程的一部分,将自动删除现有关系。

      如果主键由多个列组成,则其中一个列将允许重复值,但是主键中所有列的值的各种组合必须是唯一的。

      在SQL Server中,主键是数据表中唯一标识每一行记录的列,如果一个表没有主键,表中的记录将不能被区分开。此外,主键还有助于提高查询性能,使用主键加快了表中记录的访问速度,因此,在使用SQL Server进行数据库设计时,主键的设计就显得尤为重要。

      首先,在数据库中创建好数据表后,可以使用以下T-SQL代码语句

      1. 使用 T-SQL 命令,执行完命令后,主键就会被成功设置

      ALTER TABLE 表名
      ADD CONSTRAINT PK_主键名称 PRIMARY KEY (列名)
      
      --其中,表名是要设置主键的表名,主键名称是主键约束的名称(可以自己定义),列名是要设置为主键的列名
      
      ALTER TABLE sys_menu
      ADD CONSTRAINT PK_menu_id PRIMARY KEY (menu_id)
      
      
      
      ALTER TABLE student
      ADD CONSTRAINT PK_student PRIMARY KEY (StuID) --将表中的StuID设为主键
      
      
      ALTER TABLE student
      DROP CONSTRAINT PK_student			  --将表中的主键约束PK_studnet删除
      
      
      
      
      
      

      除此之外,在SQL Server中,还可以使用下列代码定义表的主键

      CREATE TABLE table_name
      
      (
      
      column_name datatype PRIMARY KEY
      
      )
      
      CREATE TABLE student                                           --表名为student
      (
      	  StuID int NOT NULL PRIMARY KEY,                           --学生学号
      	  StuName varchar(15) NOT NULL,                             --学生姓名
      	  Sex char(2) NULL,                                         --性别
      	  Major varchar(20) NULL,                                   --所选专业
      )
      
      
      

      primary key(列名1,列名2)

      此外,在SQL Server中,还可以使用如下代码定义联合主键,也就是具有多个字段的主键。例如,要同时定义列customer_id和 order_id两个字段为一个联合主键,可以使用以下T-SQL代码

      CREATE TABLE orders
      
      (
      
      customer_id INT,
      
      order_id INT,
      
      PRIMARY KEY(customer_id, order_id)
      
      )

      alter table 表名 add constraint pk_name primary key (列名1,列名2)

      因此,在SQL Server中,定义表的主键非常容易,无论是单一主键还是联合主键,只需要几行代码,就可以完成定义。

      设置主键并置为非空

       要先确定你要设置主键的的那列不为空,如果你的列为空,以下代码可以帮助你设为空并且添加主键

      /*Table_Member是数据表的名字,StudentID 是要设为主键的列,bigint 是主键列的数据类型*/
      ALTER TABLE Table_Member ALTER COLUMN StudentID bigint NOT NULL;
       
      /*Table_Member是数据表的名字,StudentID 是要设为主键的列*/
      ALTER TABLE Table_Member WITH NOCHECK
      ADD CONSTRAINT PK_Table_Member PRIMARY KEY (StudentID)

      更改已经建好的表中主键列的字符类型

      同样的,这个操作也要分为两步,在SQL server 的设计理念中,主键列不可更改数据类型,如果要将不是主键的列更改字符类型,直接跳到第二步。

      ALTER TABLE [表名] DROP CONSTRAINT [主键约束名]
      
      ALTER TABLE [表名] ALTER COLUMN [列名] [数据类型]

      到此这篇关于sqlserver设置主键的实现步骤的文章就介绍到这了,更多相关sqlserver设置主键内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友! 

      您可能感兴趣的文章:
      • sqlserver主键自增的实现示例
      • SQLServer主键和唯一约束的区别
      • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
      • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
      • SQLSERVER聚集索引和主键(Primary Key)的误区认识
      • sqlserver主键设计的注意点
      • sqlserver数据库主键的生成方式小结(sqlserver,mysql)
      • 小议sqlserver数据库主键选取策略

      www.htsjk.Com true http://www.htsjk.com/Sql_Server/47610.html NewsArticle sqlserver设置主键的实现步骤, 目录 开始之前 限制和局限 设置主键并置为非空 更改已经建好的表中主键列的字符类型 开始之前 限制和局限 一个表只能包含一个 PRIMARY KEY 约束。 在 P...
      评论暂时关闭