Joh*_*ogo 4 c# sql t-sql sql-server
这是一种我只是错误地了解的行为.SQL Server中的表有一个UNIQUEIDENTIFIER列,我运行了一个查询:
SELECT * FROM Tbl WHERE GuidColumn = N'2B375CD8-D210-463F-A2FD-EAFB0D643664#1'
Run Code Online (Sandbox Code Playgroud)
Guid末尾的#1错误地到达了那里,因为我从附加#1,#2,#3等的URL复制粘贴它,表示分页.
让我感到惊讶的是,查询运行得很好,我得到了与运行时相同的结果:
SELECT * FROM Tbl WHERE GuidColumn = N'2B375CD8-D210-463F-A2FD-EAFB0D643664'
Run Code Online (Sandbox Code Playgroud)
有谁知道在这种情况下如何解释#和之后的任何内容?
这在MSDN上明确处理:http://msdn.microsoft.com/en-us/library/ms187942.aspx
这并不意味着任何东西-转换成的Guid当SQL Server只读取该字符串的第36个字符.
澄清
在John Gathogo关于'{GUID}[gibberish]'
案件的评论之后(并且在接受之后),我认为我可以稍微扩展规则.
1)如果该字符串以该字符串开头'{'
,那么第38个 必须是'}'
(尝试在其中的前导和尾随空格 - 它将不起作用),否则转换失败.然后转换36个字符.
2)否则,使用前36个字符.
所以你可以添加:)
,<<
并且antidisestablishmentarianism
- 在1)中的第38个字符或2中的第36个字符之后,它没有任何区别.
归档时间: |
|
查看次数: |
207 次 |
最近记录: |