我正在使用以下查询来获取数据库中单个表的所有约束的列表
sp_helpconstraint 'schema.tableName'
然后我从结果集中提取“检查约束”并使用它。但是由于我每次都必须为每个表运行上述查询,因此这会使我的过程变慢。我想要的是 - 一个查询,我可以在其中获取所有约束及其定义的列表,或者一次只获取数据库所有表的检查约束列表。因为这将有助于加快我在 Sybase ASE 中的进程
我正在使用以下查询来获取数据库中单个表的所有约束的列表
sp_helpconstraint 'schema.tableName'
然后我从结果集中提取“检查约束”并使用它。但是由于我每次都必须为每个表运行上述查询,因此这会使我的过程变慢。我想要的是 - 一个查询,我可以在其中获取所有约束及其定义的列表,或者一次只获取数据库所有表的检查约束列表。因为这将有助于加快我在 Sybase ASE 中的进程
这也给出了表名:
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]
检查以下
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 这意味着它是检查约束