SQL Server 怎么建立联合主键?
建立联合主键有两种方式:
一种是在建表时就写出,语句如下:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
另一种是在建表后更改,语句如下:
alter table 你的表名 add constraint pk_你的表名 primary key (字段1,字段2)
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
创建联合主键还可以这样写:
create table huayunkeji_today(device_id int , year int, month int, day int, hour int, temperature float, humidity float,
primary key(device_id,year,month,day,hour));
扩展资料:
联合主键的使用情况及优点:
联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了。
再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。
一、SQL Server建立联合主键方法:
1、在建表时就写出,语句如下:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
2、在建表后更改,语句如下:
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
二、联合主键的好处:
用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。
三、使用联合主键情况:
比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补 充订单,使用相同的订单号,那么这时单独使用订单号就不可以了,因为会有重复。那么你可以再使用个订单序列号bill_seq来 作为区别。把bill_no和bill_seq设成联合主键。
即使bill_no相同,bill_seq不同也是可以的。
扩展资料:
例子如下:
主键A跟主键B组成联合主键,主键A跟主键B的数据可以完全相同,联合就在于主键A跟主键B形成的联合主键是唯一的。
下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。(这就是多对多关系)
主键A数据 主键B数据
1 1
2 2
3 3
主键A与主键B的联合主键值最多也就是
11
12
13
21
22
23
31
32
33
2013-04-10
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… ) 建表之后更改表结构: CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
可以参考一下,相关的资料网上很多。
2015-07-20 · 知道合伙人数码行家
知道合伙人数码行家
向TA提问 私信TA
create table t(ID int not null,ID2 int not null ,constraint PK_T primary key(ID,ID2))
联合主键用于字段中内容都可重复的表。
如公司部门人员表,里面包含部门名,职工姓名等字段, 每个部门中的人无重名,部门间可能有重名,如果设部门名为主键,则部门里有不止一个人,部门名有重复,如果设姓名为主键,则部门间人员可能有重名,也不唯一。
将部门名和职工姓名一起设为主键,这两个字段加起来不可能重复。
比如这种时候
商品品牌 商品型号
诺基亚 920
三星 NOTE2
诺基亚 8088
比如这样商品品牌可能有重复,都是诺基亚,但是诺基亚厂商生产的商品型号是不会重复的
也比如,可能好多品牌都有920这个型号,但是一个品牌只有一个920的型号
所以就靠这样的联合主键来确定这条记录的唯一性
建立方法如下
create table product(
pro_name varchar(20),
pro_type varchar(20),
primary key (pro_name,pro_type)
);
这就是随便给你举个例子