Timestamp說明:
Timestamp為SQL SERVER資料庫內自動產生的唯一二進位數字的資料類型,Timestamp通常用來作為版本戳記資料表資料列的機制,簡單來說就是ROW的版本控管,大小為8位元組。只要資料有更新或新增Timestamp的內容就會遞增。
Timestamp的應用情境:
若有兩個人同時在應用程式編輯同一筆資料,使用Timestamp可以防止更新被覆蓋。
Timestamp使用範例:
(1)新增資料:
Timestamp是SQL SERVER會自動產生,不用特別匯入。
USE [TestDataTypeDB] GO --建立測試timestamp的資料表 CREATE TABLE [dbo].[TestTable]( [nid] [int] NOT NULL, [timeid] [timestamp] NOT NULL, datetimes DATETIME2 not NULL ) ON [PRIMARY] GO --插入兩筆資料(timestamp是SQL SERVER會自動產生,不用特別匯入) INSERT INTO [dbo].[TestTable](nid,datetimes) VALUES(1,GETDATE()),(2,GETDATE()) GO --檢視結果 SELECT * FROM [dbo].[TestTable] GO

--更新一筆資料,資料版本會改變 UPDATE [dbo].[TestTable] SET datetimes=GETDATE()+1 WHERE nid = 1 GO --檢視結果 SELECT * FROM [dbo].[TestTable] GO

--插入一筆新資料,新資料版本會是最新的版本 INSERT INTO [dbo].[TestTable](nid,datetimes) VALUES(3,GETDATE()) GO SELECT * FROM [dbo].[TestTable] GO

(2)資料匯入:
在使用SSIS或是匯入匯出精靈轉入資料時,如果沒有略過資料類型為Timestamp的欄位會產生資料轉檔錯誤。


我們將資料類型為Timestamp的資料行忽略,此時就可以成功匯入資料內容到目的端了。



搞定收工
沒有留言:
張貼留言