- PR -

Set Identity Insertのエラー

1
投稿者投稿内容
電脳魔王の使い魔
会議室デビュー日: 2003/09/23
投稿数: 13
投稿日時: 2005-06-15 14:22
数日前にSQLサーバーを使い始めました。

今までAccess&Mysqlでデータベースを管理していたのですが
予てからレスポンスが悪い事が気になっており、SQLServerの
WorkgroupEditionを導入いたしました。

私は前任者が作成したデータベースを引き継いで管理している
のですが、データベースの中身は全てAccessのクエリ、マクロで
作成されています。
VBAは一切使っていません。

これをMysqlのテーブルとリンクさせ、2台のPCから共有で使って
いました。
そのテーブルを一度Access側に戻して、アップサイジングウィザードを
利用して、SQLServerへテーブルを移し、テーブルリンクのみを利用して
います。
業務中の空いた時間にデータベースを改良しないといけないので
これが現在出来る最良の方法でした。

さて、通常は調子良く働いてくれるようになりましたが、一日に何度か

Set Identity Insert テーブル名 on に設定されているため
テーブル名のID列に明示的な値を挿入する様にとのエラーを
吐きます。

問題のID列はオートナンバーでinsertする値は明示的に指定せずに
データベースに自動で値を割り当ててもらっています。
どこかで、勝手にSet Identity Insertがonになっているようです。
一旦、Accessを終了させるとまた機嫌を直してくれますが気になります。
色々、調べてみて苦し紛れに、insertするクエリの直前に

Set identity insert テーブル名 off

を追加する方法を思いつき、何度か挑戦してみましたが
クエリのSQLに書き加えても、SQLの実行で行ってもAccessに怒られます。
仕事で使うデータベースの管理を最低限出来る為だけに知識を付けた為
抜本的な解決方法も分かりませんし、苦し紛れにSet identity insertを
offで挿入する事も出来ません。

どなたか、解決方法をご教授頂けませんでしょうか?

ちなみにSQLServerのエラー一覧で類似したエラーをSP4で回避できると
書いてあったのでデータベース コンポーネントのSP4を当てましたが
これも効果はありませんでした。

類似したエラーはこちらです。
http://support.microsoft.com/kb/878501
私の場合とは少し違うようですが・・・・・
1

スキルアップ/キャリアアップ(JOB@IT)