数据库检查约束是否存在

Posted 庚武讲堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库检查约束是否存在相关的知识,希望对你有一定的参考价值。

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.

以上是关于数据库检查约束是否存在的主要内容,如果未能解决你的问题,请参考以下文章

在持久化实体之前检查是不是违反约束

如何检查视图中是不是已经存在约束?

js代码片段

SQL 表变量 - 添加检查匹配行集是不是存在的约束

Python 向 Postman 请求代码片段

JPA 验证唯一约束的最佳方法