![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.4ベストアンサー
- 回答日時:
#1、3です。
言い忘れたことをひとつ
そういえば大昔に同じ質問を@ITの掲示板で見かけた気がします
たぶんDatabase Expartだと思います。検索してみてください。
http://www.atmarkit.co.jp/bbs/phpBB/index.php
そのときのシステムテーブル(sysobjectsやsyscolumns)はバージョンによって仕様が変更になる可能性があるので、できるだけSQL-92準拠のInformation_schemaを使用したほうがよいと、どなたかが発言されてました
実際に2000と2005ではシステムテーブルに仕様変更があったみたいですし、ver7.0と2000も違います
INFORMATION_SCHEMA.KEY_COLUMN_USAGEのテーブルを使用しても
取得できるようですので、最終的にはこっちのほうを使おうと
思います。
丁寧な回答ありがとうございました。
No.3
- 回答日時:
システムストアドプロシージャを使用しても良いですか?
それなら単純にsp_help TABLE_NAMEやsp_pkeys TABLE_NAMEで取得できます。
ただし結果セットを取得してさらに別の処理するには、ひと工夫必要です。
.NET系などを併用すれば簡単にできますけど、T-SQLのみの制約で完結させなければいけない場合はopenrowsetなどをさらに理解してください
回答ありがとうございます。
システムストアドプロシージャってのがあるんですね。
まったくしりませんでした。
sp_pkeysで楽に取れそうです。
これを使った場合のデメリット等を調べてこれを使う
方向で行きたいと思います。
Oracleからの移行なんですけど、結構苦労しますね・・・・
No.1
- 回答日時:
select * from information_schema.constraint_column_usage
where table_name='TableA' and constraint_name like 'PK_%'
sysobjects,syscolumnsは使い勝手が悪いのでそれらを元に定義されているViewのinformation_schema系を使用すると便利だと思います。
alter tableで制約名を指定しない。名称をRDBSに任せて主キー制約はPK_で始まるのを前提にしています
回答ありがとうございます。
制約名には指定されているものもあるので、
この前提だと厳しいんですよね。
しかも、名前に統一性がまったく見られないので、
私も困っています。
OracleにあるようなUSER_TAB_COLUMNSやUSER_OBJECTS
のような感じの物があるといいんですけどね。
information_schemaとかいうのが定義されているのですね。
中身を見て見ましたが、何かの時には使えそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- マウス・キーボード Deleteキーを同時押しで入力できるようにするソフト 2 2023/08/10 21:55
- PostgreSQL 投稿記事と関連付けているテーブルがわからない 1 2022/04/27 20:29
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- HTML・CSS アドバイスを下さい。 1 2022/10/08 01:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
照合順序の変更について
-
SQLServerでテーブルの列数を求...
-
SQLManagementStudioのフィルタ
-
ポスグレ レコードの比較
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
エクスポート時の改行コードに...
-
[ BETWEEN ] vs [ >= AND <= ]
-
Accessにインポートしたら並び...
-
3つ以上のテーブルをUNIONする...
-
クエリのキャンセルがいつにな...
-
ACCESS 一番最新の日付の金額...
-
2つのテーブルから条件に一致...
-
違いを教えてください
-
【SQLServer】IS NULLのパフォ...
-
ビューで引数を使いたい
-
更新クエリでキー違反
-
AccessでOracleのテーブルをリ...
-
重複するキーから一番古い年月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
SQLServerでテーブルの列数を求...
-
【PostgreSQL】行の値の並びを...
-
主キーの取得
-
SQLManagementStudioのフィルタ
-
照合順序の変更について
-
SQLサーバーとMySQLの大きな違...
-
システムテーブルについての疑問
-
[PostgreSQL]別DBのテーブルのS...
-
ポスグレ レコードの比較
-
「マスタ」と「テーブル」の違...
-
MySQLがPostgreSQLより優れてい...
-
ACCESSのSQLで、NULLかNULLでな...
-
データの二重表示の原因
-
2つのテーブルから条件に一致...
-
[ BETWEEN ] vs [ >= AND <= ]
-
オラクルではできるのにSQLSERV...
-
ACCESS2007 フォーム 「バリア...
-
SELECT時の行ロックの必要性に...
-
ACCESS 一番最新の日付の金額...
おすすめ情報