2

Sybase ASEで、すべてのプライマリキーと一意キーを検出したいと思います。私はこの答えで説明されているのと同じようなことをしたいです:

Sybaseのテーブル、フィールド、キー、制約の特定

しかし、残念ながら、これは私にはうまくいきません。どういうわけか、syskeysテーブルはシステムテーブルキーに対してのみ、自分のキーの行を返します。

私は何を間違っているのでしょうか?いくつかの不足している助成金?Sybase ASE 15.5をインストールし、ユーザーと接続していますdbo。ログインsa

4

1 に答える 1

4

キーフィールドを明示的に宣言する場合(CREATE TABLEステートメントなど)、これはテーブルに入力されません。syskeysあなたはそれをするために(例えば)sp_primarykeysを使うでしょう。syskeysこれにより、アプリケーションで検出できるようにしたい主キー、外部キーなどをテーブルに「登録」できます。問題のフィールドに実際の制約が適用されていない場合でも、この方法で主キーを宣言できます。

ストアドプロシージャsp_helpconstraintを使用して、テーブルに定義されているすべてのキー(など)を見つけることができます。

データベース内のすべてのテーブルをクエリするには、sysindexesテーブルを使用して、statusフィールドなどを確認する必要があります。

于 2011-09-04T15:36:40.193 に答える