Sto usando Miscrosoft SQL Server 2012 e perché in questo article è detto:T-SQL "timestamp" sovrascrive "rowversion" tipo di dati di colonna
La sintassi timestamp è deprecato. Questa funzionalità verrà rimossa in una versione futura di Microsoft SQL Server . Evita di utilizzare questa funzione nel nuovo lavoro di sviluppo e pianifica di modificare le applicazioni che attualmente utilizzano .
Ho deciso di utilizzare la colonna "rowversion" invece la colonna "timestamp". Così, ho creato la seguente tabella:
CREATE TABLE [dbo].[TestTable]
(
[Col001] [INT] NOT NULL
,[Col002] [CHAR](2) NOT NULL
...
,[Col00N] [DATETIME2] NOT NULL
,[RowVersionID] [ROWVERSION] NOT NULL
,CONSTRAINT [PK_ProtoSurveyGlobalizationChanges_RowVersionID] PRIMARY KEY CLUSTERED
(
[RowVersionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
E tutto stava guardando tutto bene, fino a quando ho premuto "ALT + F1" combinazione che mi dà informazioni sul mio tavolo (come colonne dettagli) e ho visto che la colonna "RowVersionID" è contrassegnata con il tipo "timestamp".
La prossima pensare che ho fatto, è stato quello di "drop e creare la mia tavola" utilizzando SQL Server Management Studio 2012 e la "SQL generato" cambia la mia domanda originale in questo modo:
[RowVersionID] [timestamp] NOT NULL
Perché il server non sta usando il tipo che ho impostato inizialmente e perché nell'articolo mi viene consigliato di non usare "timestamp" ma in qualche modo il server lo sta scegliendo?
rowversion è un timestamp. È stato rinominato perché il timestamp non è conforme allo standard ISO. Lascialo come rowversion e smettila di preoccupartene. –
Quindi, non c'è alcuna differenza dopo aver specificato "rowversion" o "timestamp"? Il server sta usando quello corretto per me? – gotqn
Solo uno di conformità. timnestamp è deprecato e probabilmente verrà rimosso in un secondo momento. –