查询库中的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
关于字段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
相关文章推荐
- 查询库中的CHECK约束信息的两个视图(SQLSERVER)
- 查询库中的CHECK约束信息的两个视图(SQL SERVER)
- 查询sqlserver 正在执行的sql语句的详细信息
- Sqlserver查询表结构信息-字段说明、类型、长度等信息
- sqlserver 连接查询的问题,a表无重复记录,与b表中的记录为1对N关系,如何在查得a表信息时统计b表记录数
- sqlServer里面怎么查询一张表里面有没有自增字段?一张表里面,可以存在两个自增字段吗?
- sqlserver 触发器/计算两个时间的间隔天数/查询倒数第二条数据
- sqlserver查询数据库所有表列信息
- sqlserver查询数据库所有存储过程、触发器、索引信息
- v$session/v$process视图涉及的相关会话信息的查询
- 查询视图和单条数据的详细信息不用同一个视图,
- 基于sqlserver 实现查询两个经纬度之间的距离
- 查询Sqlserver表信息
- 从视图查询表分区的相关信息
- 基于sqlserver的常用查询、视图、触发器、存储过程用法
- 不同服务器中的两个表连接查询(SQLSERVER)
- SQLSERVER通过游标查询两个数据表共有字段名组合成的字符串
- Oracle视图查询慢之统计信息收集
- MsSQL SQLServer 查询 表名,表说明,表字段说明,标识,主键,长度,允许空相关信息
- Sql 查询每个年级中,年龄最大的两个学生信息。。。