sqlserver中timestamp的使用注意


timestamp 數據庫時間戳,添加該類型字段,此列不可NULL,添加/修改操作自動更新該字段值,與時間無任何關系。

timestamp 二進制數據,其實就是binary(8),C#中對應類型為byte[],查詢分析器顯示為16進制,若在程序中使用可將byte[] 轉為long類型使用。

在控制並發過程中,將此字段轉為bigint返回到程序中,當修改數據時,update mtable set field='value' where ID=1 and 時間戳=CAST(27316 as timestamp),通過影響行數,來判斷是否執行成功,不可以 and 時間戳=27316 這樣使用,會出現問題,and 時間戳=1 或者 and 時間戳=10 等這樣的小值數據,將時間戳轉為整形查看沒有這樣的數據,也能查出來。

時間戳是占用8字節空間 where solo=0x0000000000006AB4(10進制 27316 ),這樣可以查詢得出,雖然以16進制顯示,但終究不是16進制數據,所以對於二進制數據 0x6AB4 和0x0000000000006AB4 是不相等的,前者占用2個字節,后者占用8個字節。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM