掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
オートナンバー属性に設定するには? (ID:77519)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
夜遅くまでご苦労様です。 ADOやDAOのオブジェクトモデルを使っても追加できるのですが、 今回はSQL文で指定する方法を回答しますね。 (オブジェクトで追加する方法が知りたい場合は、再質問してください) -------------- [既存表へのオートナンバー列の追加] これには、以下のようなSQLを使います。 『ALTER TABLE テーブル1 ADD 新しい列 COUNTER』 "COUNTER" (または、"AUTOINCREMENT")というのが、 "オートナンバー型"を表すキーワードです。 また、Jer 4.0では、以下の構文も利用できます。 『ALTER TABLE テーブル1 ADD 新しい列 COUNTER(10,5)』 これは、「初期値=10、増分値=5」なオートナンバーを生成します。 それぞれの値に、負数やゼロ値を指定する事も可能です。 -------------- [新規表にオートナンバー列を作成] 先と同様、"COUNTER" もしくは "AUTOINCREMENT" で指定します。 例えば、以下のようなSQL文が利用できます。 CREATE TABLE 従業員 ( 社員番号 AUTOINCREMENT CONSTRAINT PK_社員番号 PRIMARY KEY, 社員姓 TEXT(50) WITH COMP NOT NULL, 社員名 TEXT(50) WITH COMPRESSION NOT NULL, 電話番号 TEXT(10), Email TEXT(50), 住所 TEXT(40) DEFAULT 不明) これは、以下のような[従業員]というテーブルを作成するための物です。 社員番号: オートナンバー(初期値=1、増分値=1) 社員姓 : テキスト型(50文字、Unicode圧縮あり) [値要求あり] 社員名 : 文字列型(50文字、Unicode圧縮あり) [値要求あり] 電話番号: 文字列型(10文字、Unicode圧縮なし) [値要求なし] Email : 文字列型(50文字、Unicode圧縮なし) [値要求なし] 住所 : 文字列型(50文字、Unicode圧縮なし) [値要求なし、初期値=不明] また、CONSTRAINT指定により、このテーブルには[社員番号]列に対して "PK_社員番号" という名前の主キーが設けられています。 # なお上記には Jet 4.0の ANSI-92モードでしか利用できないキーワードが # いくつか含まれていますので(WITH COMPやDEFAULT等)、このままですと、 # 「ADO + "Microsoft.Jet.OLEDB.4.0"」以外から実行する事はできません。 # DAOから実行したい場合には、WITH COMP等のキーワードを削って、 # ANSI-89モードのSQL構文にしてから試してみてください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.