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

  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/BoyceYang/p/2779139.html
Copyright © 2011-2022 走看看