2016-03-09 10 views
0

Я использую следующий запрос, чтобы получить список всех ограничений одной таблицы в моей базе данныхКак получить список всех проверочных ограничений в базе данных для всех таблиц конкретной схемы вместе сразу, в Sybase ASE

sp_helpconstraint 'schema.tableName'

, а затем я извлекаю «Check Constraints» из набора результатов и используя его. Но поскольку я должен каждый раз запускать указанный выше запрос для каждой таблицы, поэтому это замедляет процесс. Я хочу - это запрос, в котором я могу получить либо список всех ограничений с их определением, либо только список контрольных ограничений для всех таблиц базы данных сразу. Как это поможет ускорить мой процесс в Sybase ASE

ответ

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 

Спецификация sysconstraints в http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36274.1572/html/tables/X20320.htm объясняет статус = 128 это означает, что это ограничение проверки

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] 

 Смежные вопросы

  • Нет связанных вопросов^_^