SQL Server Tips Timestamp型で更新の有無を確認
photo by drade388
SQL ServerのTimeStamp型は、バージョンを印すテーブル行として使用され、レコードに変更があると自動的に生成されます。
更新を検知するためにある、データ型なのでこれを使用してみます。
取得済みのTimeStampの値と、データベースのTimeStampの値を比較して、値が違えばデータを取得した後、データ行になんらかの変更があったということになります。
値が同じか、同じではないかを取得できればよいということになりますので、比較してどちらの値が大きいか小さいかは問題ではないということになります。(TimeStampの特性として、大きくなるはずですが。)
SQL文を使用しての比較であれば、TimeStamp値をそのままSQL文で比較可能です。
ですが、プログラム内で比較する場合、TimeStamp値はByte配列として格納されていますので、文字列に変換、又はByte配列内を配列要素ごとに比較する必要があります。
それでは、TimeStamp値を文字列に変換してみます。
Dim Buffer As String = "0x" Dim value As Byte() = TimeStamp値 For i As Integer = 0 To value.Length - 1 Buffer &= Hex(value(i)).PadLeft(2, "0") Next Console.WriteLine(Buffer)
これで、文字列に変換できました。
これを使用して、比較し値が同じでなければ更新があったことが分かります。
関連するエントリー
- None Found