-- 声明使用数据库
use 数据库;
go

-- 添加主键(primary key)约束
-- 基本语法
-- 判断主键约束是否存在,如果存在则删除,不存在则添加
if exists(select * from sysobjects where name=主键名)
alter table 表明 drop constraint 主键名;
go

alter table 表明 add constraint 主键名 primary key(列名)

use SapDBT;
go
-- 实际例子 
if exists(select * from sysobjects where name='PK_student_id')
alter table [dbo].[Student] drop constraint PK_student_id;
go

alter table [dbo].[Student] add constraint PK_student_id primary key([ID])

-- 添加唯一键(UNIQUE)约束
-- 基本语法
-- 判断唯一键约束是否存在,如果存在则删除,不存在则添加
if exists(select * from sysobjects where name=约束名)
alter table 表明 drop constraint 约束名;
go

alter table 表明 add constraint 约束名 primary key(列名)

-- 实际例子 
if exists(select * from sysobjects where name='UQ_student_name')
alter table [dbo].[Student] drop constraint UQ_student_name;
go

alter table [dbo].[Student] add constraint UQ_student_name unique([Name])

-- 添加外键(foreign key)约束
-- 基本语法
-- 判断外键约束是否存在,如果存在则删除,不存在则添加
if exists(select * from sysobjects where name=约束名)
alter table 表明 drop constraint 约束名;
go

alter table 外键表 add constraint 约束名 foreign key(外键列) references 主键表

-- 实际例子
if exists(select * from sysobjects where name='FK_Score_Student')
alter table [dbo].[Score] drop constraint FK_Score_Student;
go

-- [dbo].[Score]中的外键[StudentId]是[dbo].[Student]的主键
alter table [dbo].[Score] add constraint FK_Score_Student foreign key([StudentId]) references [dbo].[Student]

SQL Server 数据库添加主键,唯一键,外键约束脚本的更多相关文章

  1. sql server数据库备份单个表的结构和数据生成脚本【转】

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  2. 何查询SQL Server数据库没有主键的表并增加主键

    SQL Server数据库中,如果一个表没有主键,我们该如何查询呢?本文我们主要就介绍了如何查询数据库中没有主键的表名并为其增加主键的方法,希望能够对您有所帮助. 该功能的实现代码如下: declar ...

  3. SQL Server 数据库基于备份文件的【一键还原】

    1. 备份与还原的基础说明 我们知道在DBA的日常工作中,SQL Server 数据库的恢复请求偶有发生,可能是用作数据的追踪,可也可能能是数据库的灾难恢复. 数据库常用的备份命令如下: ----完整 ...

  4. sql server数据库备份单个表的结构和数据生成脚本

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  5. sql server drop talbe 自动删除关联的外键 ,权限体系(一)

    if object_id('Proc_DropTableWithFK') is not null begin drop proc dbo.Proc_DropTableWithFK end GO ) a ...

  6. [转载]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法

    问题描述: 假设在数据库中存在以下两张数据表: User表,存放用户的基本信息,基本结构如下所示:   类型 说明 ID_User int 自动增长字段,用作该表的主键 UserName varcha ...

  7. sql server drop talbe 自动删除关联的外键 ,权限体系(二)

    alter table dbo.Sys_PowerTeamForUser add constraint FK_Sys_User_Sys_PowerTeamForUser foreign key (Sy ...

  8. sql server数据库添加记录

    转自:http://jingyan.baidu.com/article/f25ef254449a9a482c1b8293.html

  9. SQL Server数据库---》基础

    SQL Server:只是操作数据库的一个工具(这种工具,只是提供一个界面化的方式让用户方便操作数据库) 开启服务:点击:我的电脑(计算机)--管理--服务和应用程序--服务--开启SQL Serve ...

随机推荐

  1. Shell学习(四)——shell中各种括号的作用

    参考博客: [1]shell中各种括号的作用().(()).[].[[]].{} [2]shell中的单层大/中/小括号.双层大中小括号.命令替换等 一.前言 目录 单括号() 双括号(( )) 单中 ...

  2. PS只能各个工具使用的注意知识点

    1.图章工具  <仿制图章工具>使用方法:按住alt点击吸取干净的地方,然后松开alt键,按住鼠标左键拖动或左击  擦拭 图章区域放大缩小,是按住alt键+鼠标右键左右滑动 当图片中多个图 ...

  3. 快速上手git gitlab协同合作

    简单记录,整理. 摘要 为方便大家快速上手Git,并使用Gitlab协同合作,特编写此手册,手册内容不会太丰富与深入.主要包含如下内容: Git 使用教程1.1 安装1.2 常用命令1.3 版本控制1 ...

  4. size_type 和 size_t 的区别

    标准库string里面有个函数size,用来返回字符串中的字符个数,具体用法如下:string st("The expense of spirit\n");cout << ...

  5. 【Linux】【Services】【SaaS】Docker+kubernetes(8. 安装和配置Kubernetes)

    1. 概念 1.1. 比较主流的任务编排系统有mesos+marathon,swarm,openshift(红帽内部叫atom服务器)和最著名的kubernetes,居然说yarn也行,不过没见过谁用 ...

  6. 【C++】结构体/结构体数组/结构体指针/结构体嵌套/函数参数/const

    一.结构体声明 struct Student { //成员列表 string name; int age; int score; }; //s3;定义时直接声明 int main() { struct ...

  7. windows 显示引用账户已被锁定,且可能无法登录

    今天遇到一个比较尴尬的事情,清理笔记本键盘时,在锁屏界面多次碰到enter键,在登录界面被锁定无法登录. 一开始慌了,因为没遇到过这样的问题.百度一看方法不少,便开始尝试, 有的说是重启进入安全模式, ...

  8. Mybatis中原生DAO实现和Mapper动态代理实现

    Mybatis开发dao的方法通常用两种,一种是传统DAO的方法,另一种是基于mapper代理的方法. 一.传统DAO方式开发 1.sql语句映射文件编写 User.xml <?xml vers ...

  9. CF132A Turing Tape 题解

    Content 读入一个字符串 \(s\),让你用以下规则将字符串中的所有字符转换成数字: 先将这个字符的 \(\texttt{ASCII}\) 码的 \(8\) 位 \(2\) 进制数反转,再将这个 ...

  10. libevent源码学习(11):超时管理之min_heap

    目录min_heap的定义向min_heap中添加eventmin_heap中event的激活以下源码均基于libevent-2.0.21-stable.       在前文中,分析了小顶堆min_h ...