【发布时间】:2010-11-05 09:55:25
【问题描述】:
我有一个动态查询,我想在其中连接 uniqueidentifier,但 + 和 & 运算符不支持这一点,有没有办法可以将 uniqueidentifier 连接到动态字符串。在这方面的任何示例或任何帮助都将受到高度评价。
【问题讨论】:
标签: sql-server dynamic
我有一个动态查询,我想在其中连接 uniqueidentifier,但 + 和 & 运算符不支持这一点,有没有办法可以将 uniqueidentifier 连接到动态字符串。在这方面的任何示例或任何帮助都将受到高度评价。
【问题讨论】:
标签: sql-server dynamic
您是否尝试过先转换或转换为字符串,然后再连接?
CAST(NEWID() AS NVARCHAR(36))
【讨论】:
我知道这是旧的,但我遇到了这篇文章试图找出同样的事情,问题是我的唯一标识符周围没有足够的 's。我基本上有:
'SELECT * FROM Interface WHERE ID = '' + CAST(@InterfaceID AS NVARCHAR(36)) + '' AND 1 = 1'
我收到一条错误消息,提示 00A(GUID 的第一部分)附近的语法不正确。问题是这被解析为:
SELECT * FROM Interface WHERE ID = 00A3F5B5-C7B3-4128-B03A-EADE79129F40 AND 1 = 1
通过将我的查询更改为:
'SELECT * FROM Interface WHERE ID = ''' + CAST(@InterfaceID AS NVARCHAR(36)) + ''' AND 1 = 1'
我得到了三个撇号:
SELECT * FROM Interface WHERE ID = '00A3F5B5-C7B3-4128-B03A-EADE79129F40' AND 1 = 1
哪个是正确的。
希望对您有所帮助。
【讨论】: