適用於: SQL Server 2016 (13.x) 和更新版本
Azure SQL Database
Azure SQL 受控執行個體
Microsoft Fabric 中的 SQL 資料庫
使用時序表時,系統會執行多項一致性檢查。 這些檢查確保結構符合時間要求,且資料一致且保持一致。 該 DBCC CHECKCONSTRAINTS 聲明也提供時間上的檢查。
系統一致性檢查
將 SYSTEM_VERSIONING 設為 ON 之前,會在歷程記錄資料表和目前的資料表上執行一組檢查。 這些檢查分為結構檢查和資料檢查(如果歷史表不是空的)。 系統也會執行執行時一致性檢查。
結構檢查
當你建立或修改資料表成為時時資料表時,系統會驗證以下要求是否符合:
目前表格與歷史表格的名稱與欄位數量相同。
目前資料表與歷史資料表中各欄位的資料型別一致。
期間資料行設為
NOT NULL。目前的資料表有主索引鍵條件約束,記錄資料表沒有主索引鍵條件約束。
歷程記錄資料表中未定義任何
IDENTITY資料行。記錄資料表中未定義任何觸發程序。
歷程資料表中未定義任何外鍵。
歷程資料表上未定義任何資料表限制或資料行限制。 不過,歷程資料表可使用資料行預設值。
記錄資料表不是放在唯讀檔案群組中。
歷程資料表未設定變更追蹤或變更資料擷取。
資料一致性檢查
將 SYSTEM_VERSIONING 設為 ON 並成為任何資料操作語言 (DML) 作業的一部分之前,系統會執行下列檢查:ValidTo >= ValidFrom
當你建立連結到現有的歷史表時,可以選擇執行資料一致性檢查。 此資料一致性檢查確保現有紀錄不重疊,且每筆紀錄都符合時間要求。 資料一致性檢查預設會執行。 當目前與歷史資料表之間的資料可能不同步時,進行資料一致性檢查。例如,當你整合已包含歷史資料的現有歷史資料表時,就執行此操作。
警告
手動更改系統時鐘會導致系統意外故障,因為防止重疊條件的執行時資料一致性檢查(即記錄的結束時間不小於起始時間)失效。
使用 DBCC CHECKCONSTRAINTS
DBCC CHECKCONSTRAINTS 命令包含時態資料一致性檢查。 如需詳細資訊,請參閱<DBCC CHECKCONSTRAINTS>。