LoginSignup
0
0

AccessからSQLServerにリンクしたテーブルで通貨型のカラムが空白になる

Posted at

現象

元々、SQL Server 2014上で稼働していたDBを新サーバーのSQL Server 2022に移行して、Access2022よりリンクして環境を構築した際に発生。
SQL Server側はmoney型で、Accessのフォームより該当フィールドに入力して保存すると、money型のフィールドは全て消え競合エラーが発生、以後編集できなくなる。
SSMSから該当レコードを見てみると値は入っているが、Access側のフォームもテーブルもmoney型フィールドは空白。

全く原因不明

レコードロックされているのか、Access側から変更を試みると数十秒ストールして競合エラーが起こる。
SSMS側からの閲覧・変更は可能だったので、SSMS側からmoney型フィールドの値をとりあえず0変更すると、Access側からも正常に表示・変更出来るようになった。
しかし、新規レコード作成時にはまた同じ現象となる。

色々と調べた結果

money型は日本ではあまり一般的では無いらしい。
金額に小数点以下は使用しないのでint型で充分かと思い、int型に変更してみた。
すると何故か、問題が発生しなくなってしまった。
原因も何もさっぱり判らず仕舞いだが、正常に運用出来ているのでこれでよしとしました。

時間があったら・・・

int型をmoney型に戻してみたり(必要性ゼロですが)新規テーブルでmoney型を作った場合どうなるのか等を検証出来ればと思っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0