sqlserver中guid类型表字段查询导致的问题
字符串截取拼接不固定现象:
1 sqlserver 有表a,有id 和parentid两个字段。 id为uniqueidentifier 类型,即guid类型。默认值为newsequentialid() 。 parentid为字符串类型。
2 a表数据为 id值为6c75c497-76e8-eb11-9d5d-6045cba80309 。parentid值6c75c497-76e8-eb11-9d5d-6045cba803097 (parentid的值⽐id的值多了⼀个7)
3 注意guid的值执⾏语句 select * from a where id='6c75c497-76e8-eb11-9d5d-6045cba80309ppppppppppppp7' 可以查询出记录
执⾏ select * from a where parentid='6c75c497-76e8-eb11-9d5d-6045cba803097' 可以查询出记录
执⾏ select * from a where parentid='6c75c497-76e8-eb11-9d5d-6045cba80309' 可以查询出记录
4 可以看出来sqlserver执⾏查询的时候,对于guid类型的字段,会⾃动截取固定长度,然后再查询。⽐如你的guid的字符串输错了,变成37位,只要你前32位正确,依然可以查出结果。
字符串类型的字段,就不会如此,会按完全匹配来查询。
查看数据使⽤的端⼝号
exec sys.sp_readerrorlog 0, 1, 'listening'

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。