SQL2008中表的约束名存放在系统master的哪个表中?例如(为了方便大家理解我的意思 所以举例):if exists (select * from sysdatabases where  name ='bankDB')  --master 的sysdatabases表name字段里存放的是数据库名字
drop database bankDB那请问某个表的约束 存放在系统的哪个表里 因为要用 要查看里面是否有名为DF_aa 的约束名系统的存储过程 可以查看exec sp_helpconstraint cardinfo  但是不会用SQL语句检测约束名DF_aa是否在 exec sp_helpconstraint cardinfo 输出地那个信息里  
这里我有两个问题
1.SQL2008中表的约束名存放在系统master的哪个表中?SQL语句?
2.怎么用SQL语句SQL语句去查询 DF_aa在 exec sp_helpconstraint cardinfo  返回的信息里 ?SQL语句?小弟很郁闷 高手快给点思路!

解决方案 »

  1.   

    楼上 sysconstraints 里没约束名 怎么判断呢?
      

  2.   

    不是MASTER每个库都有每个表的约束名
    sysreferences 2000中的一个,SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTSSELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS可以查一下相应的08中的视图
      

  3.   

    select OBJECT_NAME(constid) from sys.sysconstraints
      

  4.   

    第一个问题:
    SELECT name,type_desc
    FROM sys.objects
    where [type] in ('C','D','F','PK','UQ')
    and parent_object_id=object_id('tablename')
    第二个问题:
    exec sp_helpconstraint cardinfo  只能返回表中所有约束 不能限定特定约束 
      

  5.   

    楼上的运行怎么没效果呀? 具体代码什么意思呢?
    SELECT name,type_desc
    FROM sys.objects
    where [type] in ('C','D','F','PK','UQ')
    and parent_object_id=object_id('tablename')
      

  6.   

    use 库名
    go

    SELECT name,type_desc
    FROM sys.objects
    where [type] in ('C','D','F','PK','UQ')
    and parent_object_id=object_id('tablename')
      

  7.   

    where [type] in ('C','D','F','PK','UQ') --这是限定对象是约束类型
    and parent_object_id=object_id('tablename')--parent_object_id这是对象的表ID
      

  8.   

    use 当前库名
     go 
    SELECT name,type_desc 
    FROM sys.objects 
    where [type] in ('C','D','F','PK','UQ') 
    and parent_object_id=object_id('这里写你的表名')
      

  9.   

    谢谢 恩恩  可以了 
    where [type] in ('C','D','F','PK','UQ') --这是限定对象是约束类型 
    and parent_object_id=object_id('tablename')--parent_object_id这是对象的表ID-  -! 小弟只是 浅薄  行是行了 就是看不懂啥啥意思 
    use 库名 go 
    SELECT name,type_desc 
    FROM sys.objects ------sys.objects?是什么意思呢 
    where [type] in ('C','D','F','PK','UQ') ----[type]?是什么意思 字段名?
    and parent_object_id=object_id('tablename')  ?parent_object_id 帮助上没查到 -  -! 
    迷茫 看不懂 ???
      

  10.   

    你查一下SYSOBJECTS联机帮助,
    C表CHECK,D表DEFAULT,F表外,PK表主,UQ表唯一
      

  11.   

    use 库名 go 
    SELECT name,type_desc 
    FROM sys.objects ------sys.objects?是什么意思呢-- 一个视图名字 你可以在MSDN搜索中输入这个 where [type] in ('C','D','F','PK','UQ') ----[type]?是什么意思 字段名? --C表CHECK,D表DEFAULT,F表外,PK表主,UQ表唯一
    and parent_object_id=object_id('tablename')  ?parent_object_id 帮助上没查到 -  -!--
     
    ent_object_id这是你约束所在的表ID