SQL Server 2016 で新しいテンポラル テーブルを作成するときに、システム バージョン管理されたテーブルを作成する方法を知りたいですか?
質問する
837 次
4 に答える
3
ここから:
テーブルをシステム バージョン管理テーブルにするには、次のものが必要です。
- 主キー
- テーブル オプション SYSTEM_VERSIONING を ON に設定する
- 行の有効期間の開始と終了を表す 2 つの null 非許容 DATETIME2() 列
- 開始列は、オプション GENERATED ALWAYS AS ROW START でマークする必要があります
- 最後の列は、オプション GENERATED ALWAYS AS ROW END でマークする必要があります
- 期間列の指定: PERIOD FOR SYSTEM_TIME (, )
- 変更された行の過去の状態を保持するためのリンクされた履歴テーブル (SQL Server が作成できる)
于 2015-09-22T05:00:23.067 に答える
2
この 2 つのリンクを参照できます。
http://sqlwithmanoj.com/2015/06/15/temporal-data-support-in-sql-server-2016-part-1/
USE [TestManDB]
GO
CREATE TABLE dbo.Department
(
DepartmentID int NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
DepartmentName varchar(50) NOT NULL,
ManagerID int NULL,
ValidFrom datetime2 GENERATED ALWAYS AS ROW START NOT NULL,
ValidTo datetime2 GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME (
ValidFrom,
ValidTo
)
)
WITH ( SYSTEM_VERSIONING = ON ); -- No History table name given here
GO
ソース コードについては、上記のリンクを参照してください。
于 2015-09-22T05:21:30.187 に答える
0
各シナリオに応じた SQL Server でのテンポラル テーブルの作成方法は、サンプル ケースを参照してください。
最も単純な形式は、次のようにテンポラル テーブルとして新しい SQL テーブルを作成することです。
create table sampleTable (
IdColumn int identity(1,1) not null primary key clustered,
Code varchar(5),
CurrentValue varchar(100),
SysStartTime datetime2 Generated Always as Row Start Not Null,
SysEndTime datetime2 Generated Always as Row End Not Null,
Period for System_Time (SysStartTime, SysEndTime)
)
with (System_Versioning = ON)
これにより、sampleTable という名前のデータベース テーブルと、現在のデータベースに対応する履歴テーブルが作成されます。
于 2015-10-05T07:16:22.043 に答える