как объединить uniqueidentifier в динамическом запросе - PullRequest
9 голосов
/ 24 июня 2009

У меня есть динамический запрос, в котором я хочу объединить uniqueidentifier, но операторы + и & не поддерживают это, есть ли способ объединить уникальный идентификатор с динамической строкой. Любой образец или любая помощь в этом отношении будут высоко оценены.

Ответы [ 2 ]

9 голосов
/ 24 июня 2009

Пытались ли вы сначала приводить или преобразовывать строку, а затем объединять?

CAST(NEWID() AS NVARCHAR(36))
8 голосов
/ 17 февраля 2011

Я знаю, что это старый, но я наткнулся на этот пост, пытаясь выяснить то же самое, и проблема заключалась в том, что мне не хватало вокруг моего уникального идентификатора. У меня в основном было:

'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

Что правильно.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...