我有一个动态查询,我想连接uniqueidentifier,但+和&运算符不支持这个,有没有办法可以将uniqueidentifier连接到动态字符串。任何样本或这方面的任何帮助都将被高度评价。
答案 0 :(得分:9)
您是否先尝试过转换或转换为字符串,然后进行仲裁?
CAST(NEWID() AS NVARCHAR(36))
答案 1 :(得分:8)
我知道这已经过时了,但是我试着想出同样的事情而遇到了这个帖子,问题是我没有足够的我的唯一标识符。我基本上有:
'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
哪个是正确的。
希望有所帮助。