sqlserver设置两个及两个以上主键

**

sqlserver设置两个及两个以上主键

**
所谓主键是指能够当唯一标识出某条记录的某一列。
如果你想建立两个列及以上的列为主键,可能会发生错误。
首先要明确主键只有一个,但是我们可以设置主键组来设置主键。这样两个列就都是主键了。设置方法:

  1. 利用图形界面操作

在这里插入图片描述
选中方法。按住shift,再点击你要选中的列就ok了。

  1. 利用SQL语句
    alter table tablename add constraint pk_name primary key (colname1,colname2)
    此时可能这个表原来有主键,先删除这个表的主键。再写上面的sql语句。

注意事项
当你用某个sqlserver版本时(例如:sqlserver2014),sqlserver设置主键完主键之后更改两个字段为主键,
可能会弹框。一堆英文提示。
这是因为在这种版本下以图形页面的形式操作设置完表之后就不能修改表了。即使修改某一列的类型也
不会被允许。但是可以以命令的形式执行sql语句,修改表结构。
需要注意的是,一般主键只用来唯一标识某一个字段,没有什么特殊的意义。一般不用于具体的逻辑。
设置两个主键可能会对以后的插入操作有影响,要慎重。

  • 27
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 SQL Server 中,每个表只能有一个主键主键是用于唯一标识表中每一行数据的组合。如果需要使用两个来唯一标识表中的每一行数据,可以使用复合主键。复合主键是由两个多个组成的主键。要创建复合主键,可以在创建表时指定多个作为主键,或者在已有表中添加主键约束并指定多个。例如: 创建表时指定多个作为主键: CREATE TABLE myTable ( column1 INT, column2 INT, PRIMARY KEY (column1, column2) ); 在已有表中添加主键约束并指定多个: ALTER TABLE myTable ADD CONSTRAINT PK_myTable PRIMARY KEY (column1, column2); ### 回答2: 在SQL Server中,表只能有一个主键主键是唯一标识表中每一行的单个字段或组合字段。如果需要维护另一个唯一标识符,可以使用唯一索引。 唯一索引与主键类似,但不强制执行行的完整性。唯一索引还允许NULL值,而主键不允许NULL值。 如果需要设置两个主键,则需要使用一个组合主键。组合主键是由多个组成的主键。 以下是设置组合主键的步骤: 1. 创建表并定义每个的数据类型。 2. 使用ALTER TABLE语句添加一个组合主键。 例如,以下代码将创建一张名为“myTable”的表,并设置一个由两个组成的组合主键: CREATE TABLE myTable ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL, CONSTRAINT PK_myTable PRIMARY KEY (name, age) ); 注意,组合主键定义在CONSTRAINT关键字之后,使用PRIMARY KEY关键字指定为主键,然后在括号中出组成主键的每个名称。 这样,每一行的唯一标识由“name”和“age”两组成。如果尝试将具有相同名称和年龄的两行插入表中,将会引发唯一键冲突错误。 总之,在SQL Server中,只能设置一个主键。要维护第二个唯一标识符,可以使用唯一索引或组合主键。组合主键是由多个组成的主键。可以使用ALTER TABLE语句添加组合主键。 ### 回答3: 在SQL Server中,每个表只能有一个主键,因为主键是用来唯一标识表中每一行数据的。如果你需要设置两个主键,那么你需要考虑是否真正需要两个主键,或者是否可以使用其他方式满足你的需求。 在某些情况下,你可能需要使用复合主键,也就是将多个作为主键的组合。这种情况下,你可以使用以下方法来设置复合主键: 1.创建表时指定多个主键 CREATE TABLE MyTable ( Col1 INT NOT NULL, Col2 INT NOT NULL, PRIMARY KEY (Col1, Col2) ) 在这个例子中,我们将Col1和Col2作为复合主键。 2.通过约束来指定多个主键 如果你已经创建了一个表,并且想要指定多个作为主键,你可以使用以下方法: ALTER TABLE MyTable ADD CONSTRAINT PK_MyTable PRIMARY KEY (Col1, Col2) 这个例子中,我们使用ALTER TABLE语句并指定一个名称为PK_MyTable的约束来将Col1和Col2作为复合主键。 值得注意的是,当你使用复合主键时,你需要考虑到合适的排序和唯一性。因此,每个的值必须唯一,并且如果你需要查询表中的数据,你需要根据复合主键的排序顺序指定排序方式。 总而言之,在SQL Server中,表只能有一个主键。如果你需要指定多个作为表的主标识符,你可以考虑使用复合主键

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值