SQL Server 怎么建立联合主键?

SQLServer怎么建立联合主键?联合主键有什么好处?一般在什么情况下使用联合主键?... SQL Server怎么建立联合主键?联合主键有什么好处?一般在什么情况下使用联合主键? 展开
 我来答
IEIOA
推荐于2019-08-18 · TA获得超过2.2万个赞
知道答主
回答量:16
采纳率:100%
帮助的人:5682
展开全部

建立联合主键有两种方式:

一种是在建表时就写出,语句如下:

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不同也是可以的。

金坷垃697
推荐于2019-10-01 · TA获得超过4441个赞
知道答主
回答量:10
采纳率:100%
帮助的人:1651
展开全部

一、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
展开全部
主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。 1.在数据库提供的GUI环境中建立(以SQL7为例)。 输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。 2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。 在建表语句中直接写: Create Table 表名 (字段名1 Int Not Null,
字段名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 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
参考代码如下:
create table t(ID int not null,ID2 int not null ,constraint PK_T primary key(ID,ID2))

联合主键用于字段中内容都可重复的表。
如公司部门人员表,里面包含部门名,职工姓名等字段, 每个部门中的人无重名,部门间可能有重名,如果设部门名为主键,则部门里有不止一个人,部门名有重复,如果设姓名为主键,则部门间人员可能有重名,也不唯一。
将部门名和职工姓名一起设为主键,这两个字段加起来不可能重复。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2013-04-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
联合主键就是确定一条记录的唯一性啊

比如这种时候
商品品牌 商品型号
诺基亚 920
三星 NOTE2
诺基亚 8088

比如这样商品品牌可能有重复,都是诺基亚,但是诺基亚厂商生产的商品型号是不会重复的
也比如,可能好多品牌都有920这个型号,但是一个品牌只有一个920的型号

所以就靠这样的联合主键来确定这条记录的唯一性

建立方法如下
create table product(
pro_name varchar(20),
pro_type varchar(20),
primary key (pro_name,pro_type)
);

这就是随便给你举个例子
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式