ms sql 外键约束和参绍约束入门教程

外键约束和参绍约束
  pubs数据库的CarIfo表创建外键约束,参绍CarFactory表的主键ID.
  */
  USE Pubs
  GO
  /*不显示行数*/
  SET NOCOUNT ON
  GO
  /*创建示例表*/
  IF EXISTS (SELECT * FROM dbo.sysobjects
  WHERE id = object_id(N’CarInfo’)
  AND OBJECTPROPERTY(id, N’IsUserTable’) = 1)
  DROP TABLE CarInfo
  GO
  CREATE TABLE CarInfo(
  Car_ID CHAR (10) ,
  Name CHAR (10) ,
  Type CHAR (20),
  Driver_Type CHAR (15)
  )
  IF EXISTS (SELECT * FROM dbo.sysobjects
  WHERE id = object_id(N’CarFactory’)
  AND OBJECTPROPERTY(id, N’IsUserTable’) = 1)
  DROP TABLE CarFactory
  GO
  CREATE TABLE CarFactory(
  ID CHAR (10) NOT NULL,
  Name CHAR (20) ,
  PostCode CHAR (6),
  Telphone CHAR (15),
  Address CHAR (30),
  )
  GO
  ALTER TABLE CarFactory
  ADD CONSTRAINT PK_Car_ID
  PRIMARY KEY NONCLUSTERED (ID)
  GO
  ALTER TABLE CarInfo
  WITH NOCHECK
  ADD CONSTRAINT Car_id_link
  FOREIGN KEY (Car_ID) REFERENCES CarFactory(ID)
  GO
  USE master
  EXEC sp_dboption Pubs, ’dbo use only’, TRUE
  GO
  USE Pubs
  SET NOCOUNT ON
  GO

时间: 2024-09-28 13:25:24

ms sql 外键约束和参绍约束入门教程的相关文章

oracle-Oracle PL/SQL 外键关联的异常处理

问题描述 Oracle PL/SQL 外键关联的异常处理 删除父表记录后, 若不写异常处理器,则会报错,并自动回滚所有被删除的数据. 若写了异常处理器,则在异常处理中回滚,只能恢复父表记录, 而子表中对应的记录被删除仍无法恢复. 预期结果应该是在回滚之后被删除的所有记录都恢复. 解决方案 外键关联肯定不能直接删除父表啊 可以这么做, 方法一:先删除外键关联,再去删除父表 方法二:先删除子表,再去删除父表 解决方案二: Oracle:pl/sql 异常处理 解决方案三: 同意1楼说的,删子,再删父

sql server ql语句删除外键和删除

sql server ql语句删除外键和删除 alter   table   tablename   add   constraint   ordersrelationship                           foreign   key   mployeeid       references   employees   (employeeid)                           on   delete     cascade                

Java的Hibernate框架中的双向主键关联与双向外键关联_java

一.双向主键关联双向的主键关联其实是单向一对一主键关联的一种特殊情况,只不过要在关联对象的两端的映射文件中都要进行<one-to-one>的配置,另外还要在主映射的主键一端采用foreign外键关联属性. 这里同样使用Person和IdCard来讨论,一个人对应着一个唯一的身份证,而且一个身份证也唯一映射着一个人,所以这就产生了双向的关联关系,Person的主键同样也是IdCard的主键,分别是主键的同时也是外键,这种关联关系成为双向一对一映射,表现到关系模型中可如下图: 图中的两个表采用了主

关系数据库设计中,用中间表好还是直接设定主外键关联好?

有人会对数据库有这样的疑问: 因为大多数的数据库教程上都是告诉你关系数据库如何去创建1:1.1:N和N:M的数据库关系,但我发现很多开源产品中,并没有直接使用关系数据库的关系查询.关系删除等功能,而是直接在代码中对多个表的查询结果进行组合. 这两种方式的优缺点是什么呢?为什么很多项目都选择后者呢?在一个中型以上的项目实践中,我该选择哪种方式,或是两种方式结合使用? 我想: 1,数据表与数据表之间有关联(Relationship)是肯定的,但是不一定要用外键(Foreign Key),为什么?外键

MS SQL巡检系列&amp;mdash;&amp;mdash;检查外键字段是否缺少索引

前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方面,网上关于MS SQL巡检方面的资料好像也不是特别多.写这个系列只是一个分享,自己的初衷是一个知识梳理.总结提炼过程,有些知识和脚本也不是原创,文章很多地方融入了自己的一些想法和见解的,不足和肤浅之处肯定也非常多,抛砖引玉,也希望大家提意见和建议.补充,指正其中的不足之处.Stay Hungry

sql server中的外键约束

server sql server中建立外键约束有3中方式:1.Enterprise Manager中,Tables,Design Table,设置Table的properties,   可以建立constraint, reference key;2.Enterprise Manager中,Diagrams, new Diagrams,建立两个表的关系.3.直接用transact sql语句. 三个方法都需要先建立数据表.-- 创建表author :CREATE TABLE [dbo].[aut

讲解SQL与Oracle外键约束中的级联删除

最近软件系统中要删除一条记录,就要关联到同时删除好多张表,它们之间还存 在着约束关系.所以考虑到在创建表时加上约束关系,详细内容如下: SQL的外键约束可以实现级联删除与级联更新; ORACLE则只充许级联删除. SQL级联删除与级联更新使用格式: CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20)) CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDAT

sql 解决无法删除表,提示被外键约束引用

Drop table命令用于删除一个表格或者表中的所有行.其语法格式为: drop table "tablename" 下面举个例子: drop table employee; 为了删除整个表(包括所有的行),可以使用drop table命令后加上tablename.Drop table命令跟从表中删除所有记录是不一样的:   提示"无法删除对象 'Orders',因为该对象正由一个 FOREIGN KEY 约束引用",原因很简单不要急躁,它被其它表的外键引用了,所

sql server删除外键约束

  x先找出约束名字 然后删除它 我给个例子 --测试环境 --主表 create table test1(id int primary key not null,value int) insert test1 select 1,2 go --从表 create table test2(id int references test1(id),value int) go --第一步:找出test2表上的外键约束名字 --2000 exec sp_helpconstraint 'test2' --可