数据库检查约束是否存在

http://stackoverflow.com/questions/2499332/how-to-check-if-a-constraint-exists-in-sql-server

Easiest way to check for the existence of a constraint (and then do something such as drop it if it exists) is to use the OBJECT_ID() function...

IF OBJECT_ID(‘dbo.[CK_ConstraintName]‘, ‘C‘) IS NOT NULL
    ALTER TABLE dbo.[tablename] DROP CONSTRAINT CK_ConstraintName

OBJECT_ID can be used without the second parameter (‘C‘ for check constraints only) and that may also work, but if your constraint name matches the name of other objects in the database you may get unexpected results.

IF OBJECT_ID(‘dbo.[CK_ConstraintName]‘) IS NOT NULL
    ALTER TABLE dbo.[tablename] DROP CONSTRAINT CK_ConstraintName

OBJECT_ID can also be used with other "constraints" such as Foreign Key constraints or Primary Key constraints, etc. For best results, always include the appropriate object type as the second parameter for the OBJECT_ID function:

Constraint Object Types:

  • C = CHECK constraint
  • D = DEFAULT (constraint or stand-alone)
  • F = FOREIGN KEY constraint
  • PK = PRIMARY KEY constraint
  • R = Rule (old-style, stand-alone)
  • UQ = UNIQUE constraint

Also note that the schema is often required. The schema of constraints generally takes the schema of the parent table.

Failure to put your constraints (or whatever you are checking) in brackets when using this method may also cause a false negative -- if your object uses unusual characters (such as a .), the brackets are required.

时间: 2024-10-24 11:05:54

数据库检查约束是否存在的相关文章

oracle数据库添加,查询,删除检查约束

CHECk约束是检查约束,能够规定每一个列能够输入的值,以保证数据的正确性 比如通过限制数据类型,检查约束,输入格式,默认值,非空约束等 例如:学生姓名大于0,学生编号不能为空,如果不满足要求,则判断输入无效 (1)添加约束: [1]创建表时添加CHECK约束,在创建表的后面 语法: CONSTRAINT   约束名称   CHECK(条件) 示例: -创建顾客信息表的同时为表添加检查约束 CREATE TABLE CUSTOMINFO( CUSTOMID VARCHAR2(10), NAME

数据库的约束

数据库的约束用于保证数据的完整性,即保证数据的正确性和唯一性. 总的来说有五种:唯一性和主键约束.外键约束.检查约束.空值约束.默认值约束, 有五大关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT 1.--主键约束(Primay Key Coustraint) 唯一性,非空性主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录.每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的

SQL创建表、数据库、约束、文件夹语法

use mastergo ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------创建数据库存放位置(文件夹)----------------------------

数据库五大约束

数据库中的五种约束及其添加方法 五大约束 1.--主键约束(Primay Key Coustraint) 唯一性,非空性 2.--唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 3.--检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等) 4.--默认约束 (Default Counstraint) 该数据的默认值 5.--外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

约束(主键、非空、唯一性、外键、检查约束)

一.五种约束 如果DML操作所涉及数据违反了已定义的约束,则数据库系统将拒绝执行这样的操作. Oracle数据库中,约束具体包括非空(NOT NULL)约束.唯一键(UNIQUE)约束.主键(PRIMARY KEY)约束.外键(FOREIGN KEY)约束和检查(CHECK)约束五种. 和数据表类似,约束也属于数据库对象,可以在建表的同时创建其相关约束,也可以在建表后单独添加:可以由用户命名,也可以由系统按照默认格式自动对约束进行命名:按照约束的定义位置,又可以分为表级约束和字段级约束两种. 建

Sql Server——运用代码创建数据库及约束

在没有学习运用代码创建数据库.表和约束之前,我们只能用鼠标点击操作,这样看起来就不那么直观(高大上)了. 在写代码前要知道在哪里写和怎么运行: 点击新建查询,然后中间的白色空白地方就是写代码的地方了. 另外就是,在这里我们最好是写好一句就执行一句,而且执行方法和C语言那些有所不同,在这里我们需要选中需要执行的代码段点击偏左上角的执行. 上图就是一句创建数据库的代码,首先选中它,再点击执行. 代码创建数据库: 在创建表和约束之前是一定要有数据库的,所以就先说怎么运用代码创建数据库吧! 创建:cre

ORCAL 数据库的约束和基本数据类型

oracle数据库约束:    定义要输入的这个值是一个什么样的值, 或者是哪个范围内的值 作用: 确保完整性, 确保精确性 1, 非空约束(not null)     记录一条信息的时候如果用户名和密码没有被记录, 那么这条记录是没有实际意义的, 创建表的时候默认是可以为空的: 2, 主键约束(Primary key)      确保表中每一行的数据的唯一性      非空, 唯一      一个表中只能有一个主键, 但是这个主键可以由多个字段(联合主键, 复合主键)来构成      可以在建

改写了禁用或启用oracle数据库的约束的存储过程

改写了网上某位大侠(最开始的源头是哪位没记住)写的禁用或启用oracle数据库所有约束的存储过程,增加了异常控制,以使发生异常时也可以执行下去. –调用过程: 执行前先 set serveroutput on;    ----以便打印出输出禁用约束检查 exec MANAGE_USER_CONSTRAINTS('disable',true,true,true); 启用约束 exec MANAGE_USER_CONSTRAINTS('enable',true,true,true); CREATE

达梦数据库的约束操作

达梦数据库的约束操作 达梦数据库的约束常用的有主键约束.外键约束.唯一约束,还有些不常用的检查约束.非空约束等等,接下来我们使用test1用户分别来创建操作下. 1.创建主键约束我们先来用test1用户创建一个tab1表来测试,同时创建idcreate table tab1 (id int primary key, name char); 插入一条数据正常insert into tab1 values(2, 'a');再次插入就会提示插入失败,提示违反表[TAB1]唯一性约束.insert in