SQLServer 2012/2014/2016〜
最終更新日: 2023年8月21日
Wagby で指定した型は、データベース内で次のように扱われます。
JDBC で接続するためには、TCP/IP が有効になっている必要があります。
SQL Server をインストールしたときに、名前付きインスタンスでインストールしたときには、データベース接続 url に、インスタンス名またはインスタンスが起動しているポート番号を指定する必要があります。
「既定のインスタンス」では1433/tcp、「名前付きインスタンス」ではインスタンスの初回起動時に未使用の TCP ポート番号が動的に割り当てられます。
例) SQL Server 2005 Express Edition をインストールした場合
または
と指定します。(上記例のIPアドレス部分である「192.168.6.75」は、お使いのLAN環境にあわせて適当に読み替えてください。)
文字列型の項目は SQL Server が用意する nvarchar を使います。nvarchar とすることで「"鴎"の旧漢字」や、サロゲートペア文字(例:魚のホッケ:魚へんに花)も格納できるようになります。
varchar として使いたい場合は、項目毎に「テーブル定義の型」を指定してください。
旧 SQL Server 2000/2005/2008 などから 2012 以降へバージョンアップすると、新しい SQL Server では順序 (sequence) が利用できるようになります。
モデルの主キーが自動採番で順序を利用する設定のとき、旧版では seq というテーブルに順序値が格納されていました。しかしバージョンアップでは sys.sequences に順序値が用意されます。このとき sys.sequences 値は Wagby で設定した初期値(1000など) となっているため、データ移行後、順序がずれてしまいます。
この対応として、旧 seq テーブルに格納されていた値を sys.sequences に再設定してください。
例えば model1 の id 値に順序を使うとした場合、旧版では seq テーブルに model1_pkey_seq という名前と値が格納されていたとします。
このように、すべての順序値を更新してください。
仕様および制約
型のマッピング
整数型
int
文字列型
nvarchar(255)
文字列型 (テキストエリア)
nvarchar(1000)
日付型
date
時間型
time
日付時間型
datetime2
ファイル型(ファイル名)
nvarchar(255)
1バイト整数
smallint
2バイト整数
smallint
4バイト整数
int
8バイト整数
bigint
4バイト浮動小数点数
float
8バイト浮動小数点数
double precision
固定値 (作成日/更新日)
datetime2
その他 (URL型/メールアドレス型など)
nvarchar(255)
JDBCドライバ利用時の注意
TCP/IP が有効になっていることの確認
URLの指定方法
url="jdbc:sqlserver://192.168.6.75\SQLEXPRESS;databasename=sampledb"
url="jdbc:sqlserver://192.168.6.75:1433;databasename=sampledb"
Unicode文字への対応
バージョンアップ時の注意点
順序の扱い
select * from seq where name = 'model1_pkey_seq';
というSQLを実行し、その値が1234だったとします。この場合、次のSQLを実行します。
ALTER SEQUENCE model1_pkey_seq RESTART WITH 1234 INCREMENT BY 1;
参考資料