Откройте для себя первичные / уникальные ключи в Sybase ASE
В Sybase ASE я хотел бы обнаружить все первичные и уникальные ключи. Я хочу сделать что-то похожее на то, что объясняется в этом ответе:
Идентификация таблиц Sybase, полей, ключей, ограничений
Но, к сожалению, это не работает для меня. Каким-то образом syskeys
table возвращает любые строки для моих собственных ключей, только для ключей системной таблицы.
Что я могу делать не так? Некоторые недостающие гранты? Я установил Sybase ASE 15.5 и подключаюсь к пользователю dbo
, авторизоваться sa
1 ответ
Когда вы явно объявляете ключевое поле - скажем в CREATE TABLE
утверждение - это не заполняет syskeys
Таблица. Вы бы использовали (например) sp_primarykeys
сделать это. Это позволяет вам "зарегистрироваться" в syskeys
таблицы первичных, внешних ключей и т. д., которые вы хотели бы обнаружить приложением. Вы можете объявить первичный ключ таким способом, даже если нет фактических ограничений на данное поле.
Хранимая процедура sp_helpconstraint
может использоваться для поиска всех ключей (и т. д.), определенных для таблицы.
Для запроса всех таблиц в базе данных вам нужно использовать sysindexes
стол и посмотрите, например, status
поле.