sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2012:挿入とトリガーの間の DATETIME の不一致

    SQL の宣言型の性質により、データベース エンジンは 適切と思われる順序で SQL ステートメントの各部分を自由に評価してください (セマンティクスに影響を与えない限り)。 GETUTCDATE() というあなたの提案 キャッシュされている可能性があり、もっともらしいものです。

    私はこれがあなたの質問に答えないことを知っています.しかし、SQL2012 での GETUTCDATE の実装がどうであれ、将来のバージョンで変更される可能性があります。そうしないと、将来のアップグレードが本当に苦痛になる可能性があります。評価順序に関する仮定に依存しない方法でロジックを実装してください。

    あなたの特定のケースでは、いくつかの解決策が考えられます.

    <オール>
  1. OwningStatuses に問題がない場合 少し後で時間を過ごす UserStatusesHistory より の場合、3 番目のステップを別のバッチとして SQL Server に送信すると、すでに役立つ場合があります。
  2. ステップ 2 と 3 を入れ替えます。トリガーに OwningStatuses をクエリさせます 独自の日付を作成する代わりに。
  3. トリガーの使用をやめる。これを検討する理由は複数あります。


    1. PostgreSQL-合計ログサイズを制限する

    2. サマリーレポートのような表形式のクエリ結果を選択したい

    3. SSL経由でAmazonRDSに接続するにはどうすればよいですか?

    4. Oracleの非アクティブな接続