問題タブ [temporal-tables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2014 - SQL サーバー 2014 以前のバージョンの一時テーブルのような機能
SQL Server 2014 以前のバージョンで頻繁に変更されるレコードの履歴を保持する機能のテンポラル テーブルを作成することは可能ですか。テーブルで過去の変更を追跡する必要があります (たとえば、パーツ X は、指定されたパーツ番号と受領日から在庫テーブルの Z 期間の Y 日間在庫切れでした)。
sql - Oracle SQLで期間(時間的有効性)を持つテーブルの主キーを作成する
ピリオド付きの Oracle テーブルの主キーについて質問があります。
次のような 2 つのテーブルを作成しました。
このスクリプトは成功しました。ただし、データの挿入に問題があります。
親テーブルに次の 2 つの挿入ステートメントを実行しました。
1位:声明
結果:
1 行挿入されました。
2番目: ステートメント
結果
ORA-00001: 一意の制約 (PBSVW.EL_TEMPORAL_TRY_PK) に違反しています
「ID」列が原因であることがわかりました。ただし、この 2 つの行は別の期間のものであるため、私の問題は許可されますか?
この期間は、フラッシュバックの代わりにレコードの変更履歴をキャプチャする機能に使用することを意図していました。しかし、この状況では主キーを使用すべきではないということですか?
前もって感謝します!
c# - Linq2Sql を使用したテンポラル テーブル
IDでエンティティを取得するか、すべてのエンティティを取得するための汎用リポジトリがあります。
エンティティ関係の DbContext を構成した後、ナビゲーション プロパティと残りのすべてがすべてのエンティティに対して正しく読み込まれます。
ここで、すべてのエンティティが有効範囲を持つように、テンポラル SQL テーブルを使用するよう求められました。
SQL ではFOR SYSTEM_TIME AS OF @validityDate
、クエリに含めます。
を尊重するために既存の実装を適応させる最も簡単な方法は何@validityDate
ですか?
私が試したこと:
- SQL クエリを実行するときに必要なシステム時間を構成する方法を探します。問題: 方法が見つかりませんでした。
- パラメーターとして渡すことができるテーブル値関数を介してクエリを公開し
@validityDate
ます。問題: Linq2Sql を使用してパラメーターを渡すことができません (または、少なくとも方法がわかりませんでした)。 - 結合を実行するテーブル値関数を (EF に実行させるのではなく) 作成し、 で呼び出すことができるようにし
context.FromSqlRaw(<query>)
ます。問題: C# オブジェクト ツリーを作成する方法は? (1 対多の関係があるため、複数の行が返されます)
私が見つけた一時テーブルを使用したすべての例では、FromSqlRaw
. 可能であれば、それを避けたいと思います。これは、DB コンテキストの全体像が役に立たなくなり、マッピング用の追加コードを含める必要があることを意味するためです。