查询库中的CHECK约束信息的两个视图(SQLSERVER)

来源:互联网 发布:自己如何制作软件 编辑:程序博客网 时间:2024/06/05 08:42
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

以下两个视图均基于系统表sysobjects、syscomments和系统视图sysconstraints,查询结果中包括表ID、表名、列ID、列名、CHECK约束ID、CHECK约束名、CHECK约束status值以及CHECK约束的内容,TCCView为Table-Column-CHECKView,结果中均为列级CHECK约束,TCView为Table-CHECKView,结果中均为表级CHECK约束。

关于字段status的值的作用,参见不用企业管理器的情况下得知CHECK约束的属性设置一文。

下面是两个视图的代码,可用于SQLSERVER2000中的任意数据库中。

TCCView:
SELECTTOP100PERCENTa.idAStableid,a.tablename,a.colid,a.columnname,
     a.datatype,a.length,b.constidASCHECKid,b.CHECKname,b.status,b.content
FROM(SELECTsysobjects.nameAStablename,sysobjects.id,
             syscolumns.nameAScolumnname,syscolumns.colid,
             systypes.nameASdatatype,syscolumns.lengthASlength
       FROMsysobjects,syscolumns,systypes
       WHEREsysobjects.xtype='u'ANDsysobjects.id=syscolumns.idAND
             syscolumns.xtype=systypes.xtypeAND
             systypes.xtype=systypes.xusertypeANDsysobjects.status>0)
     aLEFTOUTERJOIN
         (SELECTsysobjects.nameCHECKname,sysobjects.status,sysconstraints.constid,
              sysconstraints.id,sysconstraints.colid,syscomments.textAScontent
        FROMsysobjects,sysconstraints,syscomments
        WHERExtype='c'ANDsysobjects.id=sysconstraints.constidAND
              sysconstraints.constid=syscomments.id)bONa.id=b.idAND
     a.colid=b.colid
ORDERBYa.tablename,a.columnname,b.CHECKname

TCView:
SELECTa.idAStableid,a.tablename,b.constidASCHECKid,b.CHECKname,b.status,
     b.content
FROM(SELECTsysobjects.id,sysobjects.nameAStablename
       FROMsysobjects
       WHEREsysobjects.xtype='u'ANDsysobjects.status>0)aLEFTOUTERJOIN
         (SELECTsysobjects.nameCHECKname,sysobjects.status,sysconstraints.constid,
              sysconstraints.id,sysconstraints.colid,syscomments.textAScontent
        FROMsysobjects,sysconstraints,syscomments
        WHERExtype='c'ANDsysobjects.id=sysconstraints.constidAND1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击