В этом SQL-запросе
INSERT INTO RESULT_FILTER (RESULT_FILTER_NAME, RESULT_FILTER_SQL)
VALUES ('German Power Trades flagged red',
'" AND worst_status = 'R' AND country = 'DE' AND commodity = 'EL'"');
Проблема в том, что SQL Server не может обрабатывать R, DE и EL внутри "AND worst_status='R' AND country='DE' AND commodity='EL'"'.
Эта ошибка возникает:
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near 'R'.
Есть ли другой синтаксис, который я должен использовать внутри цитаты, чтобы SQL Server видел ее просто как цитату? Я использую Microsoft SQL Server Management Studio 2017
Как это вставить? В коде? Если да, используйте подготовленные операторы.
@Hearner: это SQL Server, а не MySQL


Вам нужно удвоить одинарные кавычки:
INSERT INTO RESULT_FILTER (RESULT_FILTER_NAME, RESULT_FILTER_SQL)
VALUES('German Power Trades flagged red', '" AND worst_status=''R''
AND country=''DE'' AND commodity=''EL'' "');
"двойные кавычки" - довольно распространенное название символа ". Вместо этого я бы сказал что-то вроде «Вам нужно удвоить одинарные кавычки», что вы и сделали в своем коде.
@Damien_The_Unbeliever. . . Принято к сведению.
В реальной среде вы вряд ли запишете эти значения буквально. Если вы действительно это сделаете, вам нужно будет удвоить одинарные кавычки. Однако для реального сценария вы должны использовать параметры, которые также решают эту проблему:
declare @filterName nvarchar(200) = N'German Power Trades flagged red'
declare @filterSQL nvarchar(4000) = N'AND worst_status=''R''
AND country=''DE''
AND commodity=''EL'''
-- @filterName and @filterSQL would come from client
INSERT INTO RESULT_FILTER (RESULT_FILTER_NAME, RESULT_FILTER_SQL)
VALUES (@filterName, @filterSQL);
Возможный дубликат Как избежать одиночной кавычки в SQL Server?