如何在动态查询中连接uniqueidentifier

时间:2009-06-24 05:45:33

标签: sql-server dynamic

我有一个动态查询,我想连接uniqueidentifier,但+和&运算符不支持这个,有没有办法可以将uniqueidentifier连接到动态字符串。任何样本或这方面的任何帮助都将被高度评价。

2 个答案:

答案 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

哪个是正确的。

希望有所帮助。