• 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

  • 相关阅读:
    django template extends
    python sys.path的用法
    django form 显示
    django form 验证
    WingIDE 下载,介绍和配置
    python startswith
    django reverse()
    python 动态创建类
    django form 定义
    如何学习python
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/2779139.html
Copyright © 2020-2023  润新知