最近私は一時テーブルを調べており、テーブルの1つにそれらを適用しました。私はそれをデータベースの他のテーブルに適用する必要があるので、以下の例のようなスクリプトを実行しました。私の第二テーブルの上にそれを実行している場合しかし、私は、データベースに 「DF_ValidFrom」という名前のオブジェクトが既に存在し一時テーブルの制約
メッセージ2714、レベル16、状態5、行1を取得します。
以下の記事は、製品と場所とテーブル全体で同じ制約を使用できることを暗示しているようです。誰でも既存のテーブルを一時テーブルに変更した経験はありますか?
ALTER TABLE Product
ADD
SysStartTime datetime2 (2) GENERATED ALWAYS AS ROW START HIDDEN
constraint DF_ValidFrom DEFAULT DATEADD(second, -1, SYSUTCDATETIME())
, SysEndTime datetime2 (2) GENERATED ALWAYS AS ROW END HIDDEN
constraint DF_ValidTo DEFAULT '9999.12.31 23:59:59.99'
, PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime);
ALTER TABLE Product
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.ProductHistory));
ALTER TABLE [Location]
ADD
SysStartTime datetime2 (2) GENERATED ALWAYS AS ROW START HIDDEN
constraint DF_ValidFrom DEFAULT DATEADD(second, -1, SYSUTCDATETIME())
, SysEndTime datetime2 (2) GENERATED ALWAYS AS ROW END HIDDEN
constraint DF_ValidTo DEFAULT '9999.12.31 23:59:59.99'
, PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime);
ALTER TABLE [Location]
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.LocationHistory));
記事本文はこちらを任意の助けを事前に https://docs.microsoft.com/en-us/sql/relational-databases/tables/temporal-table-usage-scenarios
おかげです。