Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Guid/UNIQUEIDENTIFIER(SQL Server)中进行intepreted_C#_Sql_Sql Server_Tsql - Fatal编程技术网

C# 如何在Guid/UNIQUEIDENTIFIER(SQL Server)中进行intepreted

C# 如何在Guid/UNIQUEIDENTIFIER(SQL Server)中进行intepreted,c#,sql,sql-server,tsql,C#,Sql,Sql Server,Tsql,这是一个我只是无意中了解到的行为。SQL Server中的表有一个UNIQUEIDENTIFIER列,我运行了如下查询: SELECT * FROM Tbl WHERE GuidColumn = N'2B375CD8-D210-463F-A2FD-EAFB0D643664#1' Guid末尾的1错误地到达了那里,因为我从一个url复制粘贴了它,该url追加了表示分页的1、2、3等等 令我惊讶的是,查询运行得很好,我得到了与运行时相同的结果: SELECT * FROM Tbl WHERE Gu

这是一个我只是无意中了解到的行为。SQL Server中的表有一个UNIQUEIDENTIFIER列,我运行了如下查询:

SELECT * FROM Tbl WHERE GuidColumn = N'2B375CD8-D210-463F-A2FD-EAFB0D643664#1'
Guid末尾的1错误地到达了那里,因为我从一个url复制粘贴了它,该url追加了表示分页的1、2、3等等

令我惊讶的是,查询运行得很好,我得到了与运行时相同的结果:

SELECT * FROM Tbl WHERE GuidColumn = N'2B375CD8-D210-463F-A2FD-EAFB0D643664'

有人知道在这种情况下是如何输入的吗?

GUID是固定宽度的,因此在类型转换过程中会去掉多余的字符

declare @g uniqueidentifier = '2B375CD8-D210-463F-A2FD-EAFB0D643664#1'
select @g
>> 2B375CD8-D210-463F-A2FD-EAFB0D643664

我怀疑查询引擎看到它是一个唯一标识符,并且在内部只截断了36个字符——因此后面的任何内容都将被忽略。这也很好,所以它与标志完全无关:

结果:

------------------------------------
F9B8E808-E589-499B-8E57-22B7CBB2D63E

MSDN中明确说明了这一点:

这并不意味着什么-SQL server在转换为Guid时只读取字符串的前36个字符

澄清

继John Gathogo对“{GUID}[gibberish]”案例的评论之后,在接受之后,我想我可以稍微扩展一下规则

1如果该字符串以“{”开头,则第38位必须是“}”,请尝试使用其中的前导空格和尾随空格,否则转换将失败。然后转换其中的36个字符

2否则,将使用前36个字符


所以你可以加上:,不是我对你的解释有异议,而是这个SELECT*FROM-Tbl,其中GuidColumn=N'{2B375CD8-D210-463F-A2FD-EAFB0D643664}'也有效。所以当你添加{}时,它会比你的前36个字符的解释更严格,因为你不能在{}中输入其他乱七八糟的内容。但是,您可以在结束后添加胡言乱语}@JohnGathogo,这是一个公平点,它将编辑为更合适的内容
------------------------------------
F9B8E808-E589-499B-8E57-22B7CBB2D63E