Hi,
Suppose my Test table has a timestamp (rowversion) column, and I have the following code:
INSERT INTO Test ...
SELECT @.@.DBTS as 'TS'
Can I be sure the TS return column value contains the value of the timestamp column of the Test table? I suspect no in general (although it will work "most of the time"), but I would like a confirmation.
If I am correct, and there may be a mismatch, is there any clever way of getting the exact value, except from doing a SELECT WHERE ...?
Thanks.
Can I be sure the TS return column value contains the value of the timestamp column of the Test table?
If the BOL said "@.@.DBTS Returns the value of the current timestamp data type for the current database", then you couldn't.
Anyway, there are some other ways to find the records have been inserted.
|||INSERT INTO Test ... SELECT @.@.DBTS as 'TS'
You are correct, this will not work in a lot of cases since the timestamp (better to start using the rowversion synonym too) value is shared amongst all tables. It would require a database lock to prevent this from possibly failing
Doing a SELECT is the best way, and will almost always be really fast since:
1. You will likely have the primary key value
2. The row will be in cache since you just created it.
No comments:
Post a Comment