1

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

sp_helpconstraint 'schema.tableName'

然后我从结果集中提取“检查约束”并使用它。但是由于我每次都必须为每个表运行上述查询,因此这会使我的过程变慢。我想要的是 - 一个查询,我可以在其中获取所有约束及其定义的列表,或者一次只获取数据库所有表的检查约束列表。因为这将有助于加快我在 Sybase ASE 中的进程

4

2 回答 2

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]
于 2017-08-16T07:13:01.100 回答
1

检查以下

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 这意味着它是检查约束

于 2016-03-11T14:37:57.870 回答