Только синтаксис timestamp
устарел, то есть указание столбца по его типу без указания его имени.Внизу это все еще timestamp
, введите id = 189;попробуйте select * from sys.types where system_type_id = 189
.Ключевое слово rowversion
использовалось только для того, чтобы провести различие между ними.Они эквивалентны:
CREATE TABLE a (id INT PRIMARY KEY IDENTITY(1, 1), VerCol timestamp)
CREATE TABLE b (id INT PRIMARY KEY IDENTITY(1, 1), VerCol rowversion)
Обе эти таблицы будут выглядеть и вести себя одинаково.Попробуйте
SELECT * FROM sys.columns WHERE object_id in (OBJECT_ID('dbo.a'), OBJECT_ID('dbo.b'))
, вы увидите, что оба столбца VerCol
имеют одинаковый system_type_id
.Если вы попробуете:
INSERT INTO a DEFAULT VALUES
INSERT INTO b DEFAULT VALUES
SELECT * FROM a
SELECT * FROM b
Вы получите что-то вроде:
id VerCol
----------- ------------------
1 0x00000000000007D3
(1 row affected)
id VerCol
----------- ------------------
1 0x00000000000007D4
(1 row affected)
Значения VerCol, конечно, будут отличаться для вашей базы данных.