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