您的位置:首页 > 数据库

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

2008-04-26 18:47 344 查看
以下两个视图均基于系统表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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: