您的位置:首页 > 数据库

SQL Server外键约束

2014-07-16 15:11 274 查看
SQLServer中主外键的定义:

1.

createtabledept
(
dept_nointprimarykey,
dept_namenvarchar(50)notnull
)
insertintodeptvalues(10,'IT'),(20,'Finance'),(30,'Engneer')


createtableemployee(employee_idintprimarykey,employee_namenvarchar(50)notnull,dept_nointforeignkeyreferencesdept(dept_no))

上面的写法,是列级定义,直接定义列字段的时候定义foreignkey


2.

createtabledept
(
dept_nointprimarykey,
dept_namenvarchar(50)notnull
prmarykey(dept_no)
)
insertintodeptvalues(10,'IT'),(20,'Finance'),(30,'Engneer')


createtableemployee
(
employee_idintprimarykey,
employee_namenvarchar(50)notnull,
dept_noint,
constraintdept_no_fkforeignkey(dept_no)referencesdept(dept_no)
)

这是表级的定义


3.已经创建了没有定义主外键的表,可以使用altertable修改

altertableemployee
addforeignkey(dept_no)referencesdept(dept_no)

altertableemployee
addconstraintdept_no_fkforeignkey(dept_no)
referencesdept(dept_no)


添加主键

altertabledept
addconstraintdept_no_pkprimarykey(dept_no)


4.去除主键

altertabledeptdropconstraintdept_no_pk


去除外键

altertableemployee
dropconstraintdept_no_fk



建了删,删了建的,手疼原本打算把MySQL的语句也写上的,原因是昨晚看了关于MySQL的视频,关于check不起作用,而且自己外键约束也模糊,不知道怎么写,原来是两种写法,这也是看MySQL视频看到的。只好改天再写MySQL的了


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: