第1个回答 2020-01-13
sql
server中建立外键约束有3中方式:enterprise
manager中,tables,design
table,设置table的properties,可以建立constraint,
reference
key;enterprise
manager中,diagrams,
new
diagrams,建立两个表的关系;直接用transact
sql语句。
1、三个方法都需要先建立数据表。
1)创建表author
:
create
table
[dbo].[author]
(
[id]
[bigint]
not
null
,
[authorname]
[char]
(10)
null
,
[address]
[char]
(480)
null
,
[introduction]
[ntext]
null
)
2)创建表mybbs:
reate
table
[dbo].[mybbs]
(
[id]
[bigint]
identity
(1,
1)
not
null
,
[authorid]
[bigint]
not
null
,
[title]
[char]
(40)
null
,
[date_of_created]
[datetime]
null
,
[abstract]
[char]
(480)
null
,
[content]
[ntext]
null
)
2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact
sql语句,过程如下:
1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:
begin
transaction
alter
table
dbo.mybbs
add
constraint
fk_mybbs_author
foreign
key
(authorid)
references
dbo.author([id])
on
update
cascade
on
delete
cascade
2)删除外键约束fk_mybbs_author:
--alter
table
dbo.mybbs
drop
constraint
fk_mybbs_author
--rollback
commit
transaction
上面on
update
cascade,on
delete
cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。
拓展资料:
SQL的主键和外键的作用:
1、插入非空值时,如果主键表中没有这个值,则不能插入。
2、更新时,不能改为主键表中没有的值。
3、删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
4、更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
第2个回答 2020-01-13
两种方法,命令与图形化
图形化,在控制台左边的小窗格中,找到要设置的表格名,右键,新建外键,然后根据要求设置既可。(新建关系图-->添加表
然后直接用鼠标拖字段连接就可以建立外键约束了
)
命令方式
sql
ce表中建立外键约束的语法:CREATE
TABLE
DetectTable(UserID
integer,StartTime
datetime
not
null,EndTime
datetime
not
null,MassName
nvarchar(10),
foreign
key
(UserID)
references
UserTable(UserID)),其中,UserID为UserTable表中的主键。
第3个回答 2020-03-18
可以在创建表的时候创建,也可以在创建表之后创建。
创建表时创建:
create
table
student
(id
int
primary
key,
name
char(4),
dept
char(9)
sex
char(4))
create
table
grade
(id
int
,
grade
int
constraint
id_fk
foreign
key
(id)
references
student
(id)
)
或创建了两表之后再建
alter
table
grade
add
constraint
id_fk
foreign
key
(id)
references
student
(id)
呵呵,希望能帮助你。