asp.net - SQL 查询未按预期工作

标签 asp.net sql-server

我在 SQL Server 中使用标准的 ASP.NET Membership 表结构,并在 Management Studio 中进行了一些手动查询并运行了此查询

SELECT *
FROM [aspnet_Users]
WHERE UserId = '2ac5dd56-2630-406a-9fb8-d4445bc781da&cID=49'

注意最后的 &cID=49 - 我从查询字符串中复制了它,但忘记删除该部分。

然而,令我惊讶的是它正确返回了数据(有一个用户 ID 为 2ac5dd56-2630-406a-9fb8-d4445bc781da) - 知道为什么会这样吗?在我看来,它不应该匹配,或者更可能抛出错误,因为它不应该能够转换为 Guid?

最佳答案

uniqueidentifier 出于从字符表达式转换的目的,type 被视为字符类型,因此受转换为字符类型的截断规则的约束。即,当字符表达式转换为不同大小的字符数据类型时,对于新数据类型来说太长的值将被截断 .

因为唯一标识符类型 限制为 36 个字符 ,超过该长度的字符将被截断。

请注意,以上引用自 MSDN

关于asp.net - SQL 查询未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410235/

相关文章:

c# - .net 中的水平 TreeView 控件

asp.net - VS2017无法识别我在m机器上安装了.NET Core 2.0 Preview 1

sql-server - 想要将 XML 存储在 SQL Server 2014 表中并在同一表上应用选择

sql - 如何在 SQL Server 中使用 JOIN 执行 UPDATE 语句?

java - 从数据库中检索 java 中的完整日期

.net - AzMan 是否被弃用为 Windows 应用程序的基于角色的授权技术?

c# - 如何使用 Postman 在 Web API 中调用函数?

asp.net - 使用本地系统应用程序池标识时,进程仅适用于 Web 应用程序

sql-server - 在 Synology NAS 服务器上使用数据和日志文件创建 SQL Server 数据库

sql-server - 在 Linux 中配置 ODBC 驱动程序