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

  • 相关阅读:
    错题本
    前端常用的代码片段
    前端生成二维码 jquery.qrcode.js
    jquery获取第几个元素的方法总结
    Jquery 获取第一个子元素
    个人作品(2016.3.17更新)
    360度全景制作
    期末项目_通用教学管理系统(季远琦&庞思瑶)
    java ee 第四周作业
    Web Service和EJB的区别
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/2779139.html
Copyright © 2011-2022 走看看