我想知道如何創建系統版本表,當我想在SQL Server 2016中創建一個新的臨時表時?2016年SQL Server臨時表
2
A
回答
3
從here:
爲了使一個表,它需要的 系統版本化表以下:
- 主鍵
- 表選項SYSTEM_VERSIONING被設置爲ON
- 兩個不可爲空的DATETIME2()列,表示行的有效期的開始和結束
- 開始列應始終產生AS ROW選項被標記START
- 最終列上應註明始終產生AS ROW END選項
- 期間列名稱:PERIOD FOR SYSTEM_TIME (,)
- 鏈接的歷史記錄表(SQL Server可以爲您創建)持有修改行的過去狀態
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
幣上面的源代碼的鏈接。
0
請參考樣本案例how to create temporal tables in 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)
這將創建在當前數據庫
1
名爲sampleTable數據庫表和相應的歷史記錄表使用System_versioning =它會自動分配系統表名稱,但如果你想明確提到你的系統表如下所示
--create table or use existing table
CREATE TABLE [dbo].[table1](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](255) NOT NULL,
[updated_at] [datetime] NULL
)
GO
--Adding additional field for temporal tables
alter table dbo.table1
add start_time DATETIME2 generated always as row start hidden default sysutcdatetime()
,end_time DATETIME2 generated always as row end hidden default sysutcdatetime()
,period for system_time (start_time, end_time)
go
--enable system versioning
alter table dbo.table1
set (system_versioning = ON (history_table = dbo.table1_history))
go
相關問題
- 1. Sql Server 2016臨時表或表變量WHILE循環裏面
- 2. SQL Server 2016臨時表設計最佳實踐
- 3. 使用SQL Server臨時表
- 4. 臨時表SQL Server等
- 5. SQL Server聯合臨時表
- 6. SQL Server 2005臨時表
- 7. 加入臨時表SQL Server
- 8. Sql Server 2016臨時數據庫不釋放空間
- 9. 動態SQL中的臨時表(SQL-Server)
- 10. SQL Server 2016列表實例
- 11. SQL Server表變量VS臨時表
- 12. SQL Server 2000臨時表與表變量
- 13. SQL Server:如何插入臨時表? ?
- 14. SQL Server臨時表已存在?
- 15. 從asp.net訪問sql server臨時表
- 16. SQL Server性能臨時表或變量
- 17. SQL Server 2012臨時表OBJECT_ID問題
- 18. SQL Server臨時表拆分字符串
- 19. SQL Server中的臨時表用法
- 20. SQL Server 2008 - 更新臨時表
- 21. 全球臨時表 - SQL Server與Oracle
- 22. 在SQL Server中的XML列臨時表
- 23. SQL Server臨時表的性能開銷
- 24. Sql server 2008,是臨時表唯一
- 25. SQL Server選擇Where LIKE(臨時表值)
- 26. 臨時表和SQL Server複製
- 27. 全局臨時表中的Microsoft SQL Server
- 28. SQL Server:將緩存保存臨時表
- 29. SQL Server中臨時表的問題
- 30. 本地臨時表的SQL Server 2000
謝謝@Japz for referri在我的博客文章。 –
@ManojPandey,我發現在線和共享在這裏:)上述問題完美的博客文章..不客氣,也感謝你的帖子。 :) – Japongskie