SQL Server 2012 唯一约束(定义唯一约束、删除唯一约束)

article/2025/9/1 22:17:43

文章目录

        • 准备知识
        • 定义唯一约束
          • 使用SSMS工具定义唯一约束
          • 使用SQL方式定义唯一约束
            • 方式一:在创建数据表的时候定义唯一约束
            • 方式二:修改数据表定义唯一约束
        • 删除唯一约束
          • 使用SSMS工具删除唯一约束
            • 方式一:在对象资源管理器中删除唯一约束
            • 方式二:在表设计器中删除唯一约束
          • 使用SQL方式删除唯一约束




准备知识

    如果要求数据表中的某列不能输入重复值,有两种约束可以做到。一种是主键约束,即该列是数据表的主键;另一种则是唯一约束,对于不是主键的列,唯一约束能够确保不会出现重复值(可以为NULL值)。
    唯一约束允许 NULL 值,这一点与主键约束不同。 不过,当与参与唯一约束的任何值一起使用时,每列只允许一个空值。 外键约束可以引用 唯一约束。
    默认情况下,向表中的现有列添加唯一约束后,数据库引擎将检查列中的现有数据,以确保所有值都是唯一的。 如果向含有重复值的列添加唯一约束, 数据库引擎将返回错误消息,并且不添加约束。
    数据库引擎将自动创建唯一索引来强制执行唯一约束的唯一性要求。 因此,如果试图插入重复行, 数据库引擎将返回错误消息,说明该操作违反了唯一约束,不能将该行添加到表中。 除非显式指定了聚集索引,否则,默认情况下将创建唯一的非聚集索引以强制执行唯一约束。

定义唯一约束

使用SSMS工具定义唯一约束
  1. 展开“数据库”,然后展开相应的数据库,再展开数据库中的“表”,右击需要定义唯一约束的数据表,选择“设计”。
    在这里插入图片描述
  2. 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
    在这里插入图片描述
    在这里插入图片描述
  3. 进入“索引/键”对话框,点击“添加”。
    在这里插入图片描述
  4. 单击右侧的“类型”,在右侧下拉框中选择“唯一键”。
    在这里插入图片描述
  5. 单击右侧的“列”,点击右边的“…”按钮。
    在这里插入图片描述
  6. 进入索引列对话框,在列名中选择需要添加唯一性约束的属性列,点击“确定”。
    在这里插入图片描述
  7. 在“标识”的“(名称)”中修改唯一约束的名称,点击“关闭”。
    在这里插入图片描述
  8. 点击保存键,或者按Ctrl+F5键进行保存。展开数据表,展开“键”,可以看到定义的唯一约束。
    在这里插入图片描述

使用SQL方式定义唯一约束
方式一:在创建数据表的时候定义唯一约束
  1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
    在这里插入图片描述
  2. 输入创建SQL代码
USE schoolDB                                                 --打开数据库schoolDB
GO
IF EXISTS(SELECT * FROM sysobjects WHERE name='student') 
DROP TABLE student                --检查student是否已经存在,如果存在,则删除
GO
CREATE TABLE student                                           --表名为student
(StuID int NOT NULL,                                           --学生学号StuName varchar(15) UNIQUE NOT NULL,                          --学生姓名Sex char(2) NULL,                                             --性别Major varchar(20) NULL,                                      --所选专业
)
  1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
    在这里插入图片描述
  2. 点击“执行”按钮,或按住F5,执行SQL代码。
    在这里插入图片描述
  3. 查看数据表中的键。
    在这里插入图片描述

方式二:修改数据表定义唯一约束
  1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
    在这里插入图片描述
  2. 输入创建SQL代码
USE schoolDB                                                 --打开数据库schoolDB
GO
ALTER TABLE student
ADD CONSTRAINT UQ_student_StuName UNIQUE(StuName) --将student表中的StuName列定义唯一约束
  1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
    在这里插入图片描述
  2. 点击“执行”按钮,或按住F5,执行SQL代码。
    在这里插入图片描述
  3. 查看数据表中的键。
    在这里插入图片描述



删除唯一约束

使用SSMS工具删除唯一约束
方式一:在对象资源管理器中删除唯一约束
  1. 展开需要删除唯一约束的数据表,然后再展开“键”。
    在这里插入图片描述
  2. 右击需要删除的唯一约束,选择“删除”。
    在这里插入图片描述
  3. 在删除对象界面,点击“确定”,即可完成唯一约束删除。
    在这里插入图片描述

方式二:在表设计器中删除唯一约束
  1. 右击需要删除唯一约束的数据表,选择“设计”。
    在这里插入图片描述

  2. 进入表设计器界面,点击工具栏的“管理索引和键”按钮,或者右键选择“索引和键”。
    在这里插入图片描述
    在这里插入图片描述

  3. 在“索引/键”对话框中选择需要删除的唯一约束,点击“删除”,完成唯一约束的删除。
    在这里插入图片描述


使用SQL方式删除唯一约束
  1. 在SSMS工具栏中单击“新建查询”,打开“SQL编辑器”窗口
    在这里插入图片描述

  2. 输入创建SQL代码

USE schoolDB --打开schoolDB数据库
GO
ALTER TABLE class 
DROP CONSTRAINT UQ_class_ClassName   --删除表class的唯一约束UQ_class_ClassName
  1. 点击“分析”按钮,或按住Ctrl+F5,对SQL代码进行语法分析,确保SQL语句语法正确。
    在这里插入图片描述
  2. 点击“执行”按钮,或按住F5,执行SQL代码。
    在这里插入图片描述
  3. 唯一约束已被删除。
    在这里插入图片描述




http://chatgpt.dhexx.cn/article/DH79t69c.shtml

相关文章

数据库----------唯一约束、默认约束、零填充约束

目录 1.唯一约束(Unique) 1.概念 2.语法 3.添加唯一约束 4.删除唯一约束 2.默认约束(default) 1.概念 2.语法 3.添加默认约束 4.删除默认约束 3.零填充约束(zerofill)了解即可 1.概念 2.操作 3.删除 1.唯一约束&…

window连接远程桌面快捷键

1、使用window R 打开运行界面,输入mstsc按回车 2、或者按window键打开开始界面,在搜索框输入mstsc按回车 3、效果

远程桌面快捷键的使用

AltPage Up 从左到右切换程序。   AltPage Down从右到左切换程序。   AltInsert按照程序的打开顺序,依次切换程序。   AltHome 显示“开始”菜单。   CtrlAltEnd 跳转到“window 安全”界面, 类似于本地机器的CtrlAltDelete   Alt Delete 相当…

Windows常用快捷键,打开记事本,打开我的电脑,屏幕投影扩展,远程桌面快捷键

网上很多windows快捷键的说明,这里不多记录,本文主要记录开发者使用windows比较常用的快捷键,尤其是多个显示器或者打开多个应用。 切到桌面 ------点击最右下叫可以一键切到桌面或者wind 打开记事本 记事本打开没有快捷键,这…

计算机开启远程桌面服务,远程桌面服务 教您开启远程桌面服务

远程桌面服务是两台电脑通过互联网建立连接的一种系统必要服务,可以用电脑A控制电脑B的桌面,还可以利用电脑B还控制电脑A的桌面,如果远程桌面服务没有开启就会无法连接到远程计算机,下面玉米系统小编教大家远程桌面服务开启方法。…

树莓派4B Ubuntu 远程桌面 步骤

文章目录 准备更换国内源更新软件列表和软件安装SSH安装ubuntu-desktopxrdp方法VNC方法问题故障解决花屏蓝屏/黑屏无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系 参考 准备 Ubuntu Mate / Ubuntu Desktop版本为22.04 官…

android远程桌面源码,ARDC Android远程桌面助手 简介(示例代码)

我的GitHub 我的博客 我的微信 我的邮箱 bqt20094 baiqiantao@sina.com 目录 界面功能与快捷键 依赖adb,无需root,画面显示清晰且可调,支持自动保存截图,支持Ctrl+C复制画面到剪贴板,画面显示可缩放可全屏,支持拖拽文件到/sdcard/Download目录,Ctrl+拖拽APK可直接安装ap…

远程桌面按键失效变成快捷键

一直在使用远程桌面连接Windows 2008操作系统,发现一个很烦的问题,经常发现某些时间,输入的按键变成了快捷键。 如弹出“辅助功能选项”、某些程序被快捷启动、按e出现资源管理器等。 又如按L键就直接回到登录界面要求重新登录:…

windows开启远程桌面

现在的远程桌面工具很丰富,向日葵,ToDesk,TeamViewer 都是很简单易用的。但是在没有外网的场景下这些软件就不太好用了。今天来简单讲一下如果开启windows自带的远程桌面功能。 环境 我这里以windows 2008 R2做演示,其他的操作系统版本也是…

从远程桌面连接切换回主屏幕的快捷键

环境是在 windows 使用远程桌面连接之后(远程桌面处于全屏的状态下),如何使用快捷键 Alt Tab 键返回主机。 按下 Ctrl Alt Home 键即可使用快捷键 Alt Tab 键返回主机 或者在远程连接时选择: 这样大部分的键盘快捷键都是主机的…

OpenCV变脸大法--‘让妖怪现原形‘(附源码)

导读 本文将介绍如何使用OpenCV和Dlib实现人脸变形(人脸->人脸和人脸->动物脸)。(公众号:OpenCV与AI深度学习) 背景介绍 我们常常在影视作品中看到一些类似的特效,比如一张人脸慢慢变成另一张人脸或者动物的脸,…

利用CImg实现人脸融合

实验目的 输入两张人脸图像,根据Image Morphing的方法完成中间 11 帧的差值,得到一张人脸渐变的动图。 实验原理 Cross-Dissolve 交叉融合,对两张图片每个像素点按一定的比例进行混合, 公式:Imagehalfway (1-t) * …

《Real-Time Rendering 4th Edition》全文翻译 - 第4章 变换(下)4.5 ~ 4.7

第四章终于结束了……接下来会休息一段时间,祝各位五一劳动节快乐! …… 想了想还是不休息了,继续继续!! 实时渲染(第四版)Real-Time Rendering (Fourth Edition) 第4章 变换 Chapter 4 Tran…

osgEarth的Rex引擎原理分析(九十五)地形变形(Terrain morphing)

目标:(十二)中的问题14 morphing翻译为渐变(或混合)比较合适。 先看两张图,左图是使用了Image morphing,右图没有使用。morph的作用是使视域边界处的瓦片颜色和高程均匀变化。Image morphing控…

Image Warping-Morphing 实现人脸渐变

这学期选修了计算机视觉与模式识别这门课,刚上几周,感觉挺有趣的。 课程上到Image Warping & Morphing的时候老师介绍了一样挺好玩的东西,我用它来做人脸渐变。 先看看效果图: 。。。。。。。。。。。。。。。。。。。。。。…

android按钮详解,android-morphing-button

从一种形状变成另一种形状。 你可以轻易的继承MorphingButton来添加自己的行为(behaviour),下面是一个继承自MorphingButton的ofLinearProgressButton。 示例代码// sample demonstrate how to morph button to green circle with icon MorphingButton btnMorph (M…

基于StyleGAN的Face-Morphing

本文详细介绍了生成对抗网络(GAN)的知识,并用其变换人脸,并探寻如何利用StyleGAN生成不同属性(如年龄、微笑等)的人脸。 概述 直到最近,我才开始探索深度学习的全部内容,并在计算机…

人脸融合技术,用 Python - OpenCV 来帮你实现

提了好几天的人脸融合技术,今天终于被提上日程,该技术是基于之前介绍的技术基础上延伸得到的,如果之前没有了解过这两篇文章,建议提前看下, 实现人脸识别、人脸68个特征点提取,或许这个 Python 库能帮到你&…

FaceMorphing

大学时候上《计算机视觉与模式识别》课程的时候,一个人脸morphing作业的源代码,运行环境为VS2015。 项目源代码下载链接 效果图如下: