2014年8月5日火曜日

IDENTITY_INSERT のサンプルコード

以下のQuery を、INSERT する前に投げると、PRIMARY_KEY に値を代入可能。

SET IDENTITY_INSERT <TableName> ON

OFF で、上記を解除。
SET IDENTITY_INSERT <TableName> OFF

下の例では、外部ファイルを読み込んで、1行ずつクエリを投げています。
何万行も実行する必要があったので、PreparedStatement は使ってないです。

[ サンプルコード ]
try  (BufferedReader br = new BufferedReader(new FileReader(new File(filename)))){
       conn.createStatement().execute("SET IDENTITY_INSERT <TableName> ON");
       String sql = null;
       while( ( sql = br.readLine() ) != null ){
              conn.createStatement().executeUpdate(sql);    
       }
              conn.createStatement().execute("SET IDENTITY_INSERT <TableName> OFF");
       } catch (Exception e) {
               e.printStackTrace();
       } finally {
               if (conn != null) {
              try {
                     conn.close();
              } catch (Exception e) {
                     e.printStackTrace();
              }
       }
}

0 件のコメント:

コメントを投稿