Sybase ASEで、すべてのプライマリキーと一意キーを検出したいと思います。私はこの答えで説明されているのと同じようなことをしたいです:
しかし、残念ながら、これは私にはうまくいきません。どういうわけか、syskeys
テーブルはシステムテーブルキーに対してのみ、自分のキーの行を返します。
私は何を間違っているのでしょうか?いくつかの不足している助成金?Sybase ASE 15.5をインストールし、ユーザーと接続していますdbo
。ログインsa
Sybase ASEで、すべてのプライマリキーと一意キーを検出したいと思います。私はこの答えで説明されているのと同じようなことをしたいです:
しかし、残念ながら、これは私にはうまくいきません。どういうわけか、syskeys
テーブルはシステムテーブルキーに対してのみ、自分のキーの行を返します。
私は何を間違っているのでしょうか?いくつかの不足している助成金?Sybase ASE 15.5をインストールし、ユーザーと接続していますdbo
。ログインsa
キーフィールドを明示的に宣言する場合(CREATE TABLE
ステートメントなど)、これはテーブルに入力されません。syskeys
あなたはそれをするために(例えば)sp_primarykeys
を使うでしょう。syskeys
これにより、アプリケーションで検出できるようにしたい主キー、外部キーなどをテーブルに「登録」できます。問題のフィールドに実際の制約が適用されていない場合でも、この方法で主キーを宣言できます。
ストアドプロシージャsp_helpconstraint
を使用して、テーブルに定義されているすべてのキー(など)を見つけることができます。
データベース内のすべてのテーブルをクエリするには、sysindexesテーブルを使用して、status
フィールドなどを確認する必要があります。