Я знаю, что это старый, но я наткнулся на этот пост, пытаясь выяснить то же самое, и проблема заключалась в том, что мне не хватало вокруг моего уникального идентификатора. У меня в основном было:
'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
Что правильно.
Надеюсь, это поможет.