zoukankan      html  css  js  c++  java
  • Database、Table的所有约束

    列出Database或Table的所有约束

    很多时候我们想使用像 INSERT、UPDATE、DELETE 这样的DML命令。有时候因为某个表被设置约束,导致我们操作该表出现错。拿到一个新的数据库,如果不知道哪些表被设置约束,一定让人很痛苦。

    如果我们能够列出所有的约束,很多错误就可以避免。下面有两个方法列出约束。

    方法 一

    使用 sys.objects 获得约束信息。

    — 显示数据库中所有约束

    SELECT * FROM sys.objects

    WHERE type_desc LIKE ‘%CONSTRAINT’

    上面的语句显示sys.objects所有的字段我们可以改进上面的查询,显示比较舒服的结果

    – 显示数据库中所有约束

    SELECT OBJECT_NAME(object_id) AS ConstraintName,

    SCHEMA_NAME(schema_id) AS SchemaName,

    OBJECT_NAME(parent_object_id) AS TableName,

    type_desc AS ConstraintType

    FROMsys.objects

    WHERE type_desc LIKE %CONSTRAINT’

    – 显示‘Employee’表中所有约束

    SELECT OBJECT_NAME(object_id) AS ConstraintName,

    SCHEMA_NAME(schema_id) AS SchemaName,

    type_desc AS ConstraintType

    FROM sys.objects

    WHERE type_desc LIKE ‘%CONSTRAINT’ AND OBJECT_NAME(parent_object_id)=‘Employee’

    方法 二

    使用 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 获得约束信息。 这个查询有一个缺点,它不会显示数据库默认(DEFAULT)约束

    –显示数据库中所有约束

    SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

    – 显示‘Employee’表中所有约束

    SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS

    WHERE TABLE_NAME=‘Employee’

    在数据库中我们可以使用下面的SQL语句显示默认(DEFAULT)约束

    – 显示数据库中所有约束

    SELECT OBJECT_NAME(PARENT_OBJECT_ID) AS TABLE_NAME,

    COL_NAME (PARENT_OBJECT_ID, PARENT_COLUMN_ID) AS COLUMN_NAME,

    NAME AS DEFAULT_CONSTRAINT_NAME

    FROM SYS.DEFAULT_CONSTRAINTS

  • 相关阅读:
    MySQL
    MySQL
    MySQL
    javaScript之深度理解原型链
    javaScript之this的五种情况
    ES6之箭头函数中的this
    javaScript之跨浏览器的事件对象
    javaScript之事件处理程序
    javaScript之promise
    VUE之使用百度地图API
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/2779139.html
Copyright © 2011-2022 走看看