如果两个表的相关列都是主键或具有唯一约束,创建的就是一对一关系。

如果只有一列具有主键或唯一约束,则创建的时一对多关系

关联字段的字符类型必须相同。

1. 一对一关系

USE [Howie]

create table purchases
(
docentry int constraint pk_pr primary key not null,
vendor_number varchar(20),
purchase_number varchar(20) constraint uni_pr unique,
purchase_line int,
purchase_price float,
purchase_status char constraint ck_pr check(purchase_status in ('C', 'O')) constraint de_pr default 'O' ,
baseentry int constraint uni_bs unique(baseentry) constraint fp_pr foreign key (baseentry) references orders (docentry) --这个baseentry具有唯一约束和外键约束,而orders的docentry具有主键约束,那么这个外键约束就具有一对一的关系
)
go

2. 一对多关系

USE [Howie]

create table purchases
(
docentry int constraint pk_pr primary key not null,
vendor_number varchar(20),
purchase_number varchar(20) constraint uni_pr unique,
purchase_line int,
purchase_price float,
purchase_status char constraint ck_pr check(purchase_status in ('C', 'O')) constraint de_pr default 'O' ,
baseentry intconstraint fp_pr foreign key (baseentry) references orders (docentry) --purchases中的baseentry新建时不具有唯一或者主键约束,而orders中的docentry有主键约束时,为一对多关系。可以理解为客户下的一个订单,我们需要向多家采购。
)
go

3.更改关系

更改关系需要先删掉原来的关系,再添加新的关系

alter table purchases
drop constraint fp_pr --删掉外键约束关系 alter table purchases
add constraint fp_pr foreign key (baseentry) references orders (docentry) --添加外键约束关系

4. 图形化界面创建与维护关系

  (1)在要添加关系的表上右击,选择设计

  (2)在设计界面找到你要添加关系的列名,右击 选择关系

  (3)在关系页面,点击【表和列规范】右方的【...】

  (4)下方界面设置外键,一定记住果两个表的相关列都是主键或具有唯一约束,创建的就是一对一关系,如果只有一列具有主键或唯一约束,则创建的是一对多关系。

SQL Server关系的创建的更多相关文章

  1. SQL Server COM 组件创建实例失败

    SQL Server COM 组件创建实例失败   SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA4759 ...

  2. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...

  3. 利用Microsoft Sql Server Management studio 创建数据库的示例

    利用Microsoft Sql Server Management studio 创建数据库的示例方法如下:   一.打开安装好的Microsoft Sql Server Management stu ...

  4. 如何实现SQL Server临时表的创建?

    以下的文章主要是对SQL Server临时表的创建的实际操作步骤,以及在实际操作中我们要用到的实际应用代码的介绍,我在一个信誉度很好的网站找到一个关于其相关内容今天拿出来供大家分享. 创建临时表 方法 ...

  5. 利用SQL Server 2008 R2创建自动备份计划

    本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...

  6. SQL Server Database 维护计划创建完整的备份策略

    SQL Server的维护计划Maintenance Plan是一个非常实用的维护工具,可以完成大多数的数据库维护任务,通过对这些功能的封装,可以省去很多的代码编写时间.网络上完整介绍的不是很多,特此 ...

  7. 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法

    以下是错误报告:   标题: SQL Server 安装程序失败. ------------------------------   SQL Server 安装程序遇到以下错误:   在创建窗口句柄之 ...

  8. SQL Server ->> 分区表上创建唯一分区索引

    今天在读<Oracle高级SQL编程>这本书的时候,在关于Oracle的全局索引的章节里面有一段讲到如果对一张分区表创建一条唯一索引,而索引本身也是分区的,那就必须把分区列也加入到索引列表 ...

  9. SQL Server Database 维护计划创建一个完整的备份策略

     SQL Server维护计划Maintenance Plan这是一个非常有用的维护工具,能够完成大部分的数据库维护任务,通过这些功能包.您可以省略大量的编码时间. 介绍的不是非常多,特此补上一篇 ...

随机推荐

  1. Java Web 学习(4) —— Spring MVC 概览

    Spring MVC 概览 一. Spring MVC Spring MVC 是一个包含了 Dispatcher Servlet 的 MVC 框架. Dispatcher Servlet 实现了 : ...

  2. python做中学(一)全局变量的用法

    一段时间没有使用python来写代码,就发现以前学习的很多语法都忘了.看来还是当初这方面的项目做的好不够多,没有系统性的运用和学习,导致了很多语法不能顺手拈来.在接下来的这个项目中, 一定要把遇到的一 ...

  3. 1+x证书web前端开发jquery专项练习测试题

    javascript程序设计-题库 1.下面哪一种不属于Jquery的选择器? A. 基本选择器 B. 层次选择器 C. 表单选择器 D. 节点选择器 答案: D 2.如果需要匹配包含文本的元素,用下 ...

  4. 避免python二维列表append一维列表时浅拷贝问题

    原始问题: 由于浅拷贝原因,使得当a列表变动时,b列表也发生变动 解决办法: 如上图所示,添加的时候添加新列即可,类似新建一个列表,使得与原有列表a不共用同一个内存

  5. jQuery 源码分析(十八) ready事件详解

    ready事件是当DOM文档树加载完成后执行一个函数(不包含图片,css等),因此它的触发要早于load事件.用法: $(document).ready(fun) ;fun是一个函数,这样当DOM树加 ...

  6. Octave Convolution详解

    前言 Octave Convolution来自于这篇论文<Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural ...

  7. Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现

    Apache ActiveMQ序列化漏洞(CVE-2015-5254)复现 一.漏洞描述 该漏洞源于程序没有限制可在代理中序列化的类.远程攻击者可借助特制的序列化的java消息服务(JMS)Objec ...

  8. SQLPrompt8.2 安装之后找不到激活入口

    如果你发现是这样的,找不到像其他人说的serial number这个选项,不要惊慌.. 首先你得先断网,然后再打开sql客户端,点击Manage License ,然后你会看到 activate 这个 ...

  9. Java生鲜电商平台-Java后端生成Token架构与设计详解

    Java生鲜电商平台-Java后端生成Token架构与设计详解 目的:Java开源生鲜电商平台-Java后端生成Token目的是为了用于校验客户端,防止重复提交. 技术选型:用开源的JWT架构. 1. ...

  10. matlab C程序

    通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度 Matlab本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或Watcom C中的一种 注:在Matlab里,矩阵 ...