如何在Sybase ASE中一次获取特定模式的所有表的数据库中所有检查约束的列表

时间:2016-03-09 06:28:38

标签: sybase-ase sybase-ase15

我正在使用以下查询来获取数据库中单个表的所有约束的列表

sp_helpconstraint 'schema.tableName'

然后我正在提取" Check Constraints"从结果集中使用它。但是因为我必须每次为每个表运行上面的查询,所以这会使我的进程变慢。我想要的是一个查询,我可以在其中获得所有约束的列表及其定义,或者只获取数据库的所有表的Check of Constraints列表。因为这有助于加快我在Sybase ASE中的进程

2 个答案:

答案 0 :(得分:1)

这也给出了表名:

select 
object_name(constid) as "Constraint name",
object_name(sysconstraints.id) as"Table name" ,
[TEXT]
from sysconstraints join syscomments on syscomments.id =sysconstraints.constid
order by [Table name]

答案 1 :(得分:0)

检查以下

select object_name(tableid) as "table name", 
object_name(constrid) as "constraint name",
col_name(tableid,sysconstraints.colid) as "column name",
text as "constraint text"
from sysconstraints,syscomments
where sysconstraints.status=128 and sysconstraints.constrid=syscomments.id

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36274.1572/html/tables/X20320.htm处的sysconstraints规范解释了status = 128,这意味着它是一个检查约束