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

  • 相关阅读:
    WKWebView-b
    Label设置行间距
    前端开发福音!阿里Weex跨平台移动开发工具开源-b
    iOS 实现脉冲雷达以及动态增减元素 By Swift-感谢分享
    使用SourceTree将bitbucket的远程仓库回滚到某一次提交-b
    IPv6测试环境搭建
    React/React Native 的ES5 ES6写法对照表-b
    越狱开发:用iosOpenDev配置越狱开发环境 编写第一个hello world-b
    MSSQL-SQL SERVER还原与备份(导入与导出)
    PHP-深入学习Smarty
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/2779139.html
Copyright © 2011-2022 走看看