SQL Server2005 中求 双主键的建立??

renchao2002 2011-01-14 03:57:48
我今天做一个东西 需要 双主键
我现有 3 个表 库名叫Account
一个叫Users
UserID(PK)
UserName(PK)sex
address


第二个叫UserRole

UserID(PK,FK)RoleID(PK,FK)
第三个表叫Roles
RoleID(PK)
descript


请问 这个要怎么建啊??帮忙写详细点要有解释
如果有图 加文字 我会 很感谢你的!
谢谢
...全文
191 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxmcxm 2011-01-14
  • 打赏
  • 举报
回复
企业管理器设计表中,同时选多个列,再点设置主键按钮就可以
brownhwy 2011-01-14
  • 打赏
  • 举报
回复
你第一个表不对头,第一个表只需要UserID做主键,否则第二个表UserRole就不能用UserID做外键。
飘零一叶 2011-01-14
  • 打赏
  • 举报
回复
create table Users
(
UserID varchar(10),
UserName varchar(10),
sex varchar(1),
address varchar(100),
constraint pk_UserID_UserName primary key(UserID,UserName)
)


create table UserRole
(
UserID varchar(10),
UserName varchar(10),
RoleID varchar(10),
constraint pk_UserID_RoleID primary key(UserID,RoleID),
constraint fk_UserID foreign key(UserID,UserName) references Users(UserID,UserName)
)

--或者
--alter table UserRole
--add constraint fk_UserID foreign key(UserID,UserName) references Users(UserID,UserName)
renchao2002 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maco_wang 的回复:]
SQL code

ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO


就是复合主键
[/Quote]

这个复合主键 我建完之后 如何去建立他们的外间关系呢
谢谢! 我现在还想问一个问题 那就是我建完复合主键 之后 怎么去建立她们之间的外键关系呢??
飘零一叶 2011-01-14
  • 打赏
  • 举报
回复
--建表时候直接添加主键
create table Users
(
UserID varchar(10),
UserName varchar(10),
sex varchar(1),
address varchar(100),
constraint pk_UserID_UserName primary key(UserID,UserName)
)

--或者建表的时候不加主键,建完表后
alter table Users
add constraint pk_UserID_UserName primary key(UserID,UserName)
叶子 2011-01-14
  • 打赏
  • 举报
回复

ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO

就是复合主键

gw6328 2011-01-14
  • 打赏
  • 举报
回复
什么 叫双主键?
一个关系中主键只有一个,其它的叫候选键
你是说主键用两列同时来做主键吗?

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧