Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.ms-sqlserver > #828

about timestamp

From "Tony" <johansson.andersson@telia.com>
Newsgroups comp.databases.ms-sqlserver
Subject about timestamp
Date 2011-11-23 18:51 +0100
Message-ID <4ecd32ca$0$282$14726298@news.sunsite.dk> (permalink)
Organization SunSITE.dk - Supporting Open source

Show all headers | View raw


I read a book called "Beginning ASP.NET 3.5 in C# from Novice to 
Professional"
Here is the text and according to this it seems to be easy to create and use 
a timestamp but when I create one for a new table and add some record to 
this new table the timestamp is always empty.
So can ayone give a comment about how to use this timestamp for concurrency.


"This is about concurrency. Matching every field is an acceptable approach 
for small record, but it isn't the most efficient startegy if you have 
tables with huge amounts of data. In this situations, you have two possible 
solutions: you can match some of the fields (leaving out the ones with 
really big values) or you can add a timestamp field to your database table, 
and use that for concurrency checking.

Timestamp are special fields that the database uses to keep track of the 
state of a record.
Whenever any change is made to a record, the database engine updates the 
timestamp field,
giving it a new, automatically generated value. the purpose of a timestamp 
field is to make strict concurrency checking easier.
When you attempt to perform an update to a table that includes a timestamp 
field you use a Where clause
that matches the appropriate unique ID value(like ProductID) and the 
timestamp field.

UpdateCommand= "Update Products set ProductName=@ProductName, 
UnitPrice=@UnitPrice,
                            UnitsInStock=@UnitsInStock, 
UnitsOnOrder=@UnitsOnOrder,
                            ReorderLevel=@ReorderLevel, 
Discontinued=@Discontinued
                            where ProductID=@ProductID and 
RowTimestamp=@RowTimestamp"

The database engine uses the ProductID to look up the matching record.
Then, it attempts to match the timestamp in order to update the record. If 
the timestamp matches you
know the record hasn't been changed. The actual value of the timestamp isn't 
important, because that's controlled by the database.
You just need to know whether it's changed. Creating a timestamp is easy. In 
SQL Server you create a timestamp field using the timestamp data type."

//Tony

Back to comp.databases.ms-sqlserver | Previous | NextNext in thread | Find similar


Thread

about timestamp "Tony" <johansson.andersson@telia.com> - 2011-11-23 18:51 +0100
  Re: about timestamp Erland Sommarskog <esquel@sommarskog.se> - 2011-11-23 23:53 +0100

csiph-web