Perhaps the title of this blog post will suffice, but I just wanted to highlight this problem.
If you were to look up the timestamp data type in the SQL Server 2008 documentation, this is waht you will find within the topic article:
“The timestamp syntax is deprecated. This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.”
It’s been there for quite some time.
The functionality of rowversion and timestamp are the same. It’s just a name change to align with the rest of the world and end the confusion caused by the word “time” in the name.
So let’s say you are good at following these types of recommendations and as you create a new table in SQL Server Managmenet studio, you attempt to use rowversion rather than timestamp.
Here’s what you’ll see:
rowversion is not an option.
It’s also not an option if you try to use the column’s properties window.
You can use TSQL to create the column:
ALTER TABLE dbo.Address ADD RowVersion rowversion
But the designer will still display it as a timestamp. The object explorer also says its a timestamp.
What about Visual Studio 2010?
The server explorer doesn’t grok rowversion either and shows the field as a timestamp.
And finally, the tool I use frequently, the Entity Data Model designer also does not recognize rowversion.
If I create an entity from this table, the store schema’s representation of the field is:
<Property Name="RowVersion" Type="timestamp" Nullable="false" StoreGeneratedPattern="Computed" />
I can change this manually and it is valid within the schema.
I’m confused. Microsoft wants us to use rowversion but they sure don’t make it easy!
Again, timestamp and rowversion do exactly the same thing. This is only a “decorative” change.
Yet, I care a lot about this because I use timestamp fields in the sample database for my book, Programming Entity Framework. The term “timestamp” shows up in many screenshots and I discuss it frequently throughout the book. I am considering taking on the task of changing every visual and textual reference to rowversion to be in line with Microsoft’s recommendations. Bt if it’s not easy for users to use the rowversion type, I’m very hesitant to force it on them.
Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!