LoginSignup
0
1

More than 5 years have passed since last update.

ORACLEとSQLSERVERでのTIMESTAMP型の違い

Posted at

ORACLEのTIMESTAMP型の項目をSQLSERVERにそのままリプレイスすると
処理内で登録/更新しようとした際に以下のようなエラーになる

・登録

timestamp 列に明示的な値を挿入できません。timestamp 列を除外する列リストを指定して INSERT を使用するか、timestamp 列に DEFAULT を挿入してください。

・更新

timestamp 列は更新できません。

Why?

ORACLEでは日時を表す型としてTIMESTAMP型を使用しているが、
SQLSERVERではTIMESTAMP型は少し位置づけが異なるため。

SQL ServerのTIMESTAMP型はユーザーによって設定されない想定の型であるため、上記エラーになるとのこと。
※中身もバイナリっぽいですので、そもそもそのまま人が見ることは想定しない項目の様子。

なので、datetime もしくは datetime2にする必要がある。

どっちが悪いとかではないんだろうけど、同じ型名で全然違うものを示すのはやめてほしいところ。

0
1
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
1