Kev*_*ain 6 sql-server asp.net
我在SQL Server中使用标准的ASP.NET Membership表结构,并在Management studio中进行了一些手动查询并运行此查询
SELECT *
FROM [aspnet_Users]
WHERE UserId = '2ac5dd56-2630-406a-9fb8-d4445bc781da&cID=49'
Run Code Online (Sandbox Code Playgroud)
注意结尾的&cID = 49 - 我从查询字符串中复制了这个并忘记删除该部分.
但是,令我惊讶的是它正确地返回了数据(有一个ID为2ac5dd56-2630-406a-9fb8-d4445bc781da的用户) - 任何想法为什么这样做?在我看来它不应该匹配或者更可能抛出一个错误,因为它不能转换为Guid?
uniqueidentifier出于从字符表达式转换的目的,该类型被视为字符类型,因此受转换为字符类型的截断规则的约束。也就是说,当字符表达式转换为不同大小的字符数据类型时,对于新数据类型来说太长的值将被截断。
由于 uniqueidentifier 类型限制为 36 个字符,因此超过该长度的字符将被截断。
注意,上面引用自MSDN
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |