Sql server SQL Server 2008错误-靠近';的语法不正确%';。[SQLSTATE 42000](错误102)。步骤失败了

Sql server SQL Server 2008错误-靠近';的语法不正确%';。[SQLSTATE 42000](错误102)。步骤失败了,sql-server,Sql Server,我有一个SQL查询,当用于设计为通过电子邮件发送查询结果的SQL作业时,由于上述错误而失败。在运行普通查询时,语法很好 我看到其他人在服务器名称中使用非标准字符时也遇到过这个问题,但我的问题是我的查询中的%符号,我认为其他解决方案对我不起作用: EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL-Server', @recipients = 'XXXXX', @subject = 'Missing Essence File Check', @que

我有一个SQL查询,当用于设计为通过电子邮件发送查询结果的SQL作业时,由于上述错误而失败。在运行普通查询时,语法很好

我看到其他人在服务器名称中使用非标准字符时也遇到过这个问题,但我的问题是我的查询中的%符号,我认为其他解决方案对我不起作用:

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQL-Server',
@recipients = 'XXXXX',
@subject = 'Missing Essence File Check',
@query = N'SELECT *   FROM ([omnibus].[dbo].[OmniBus_CLP_Clips] CLP 
inner join [omnibus].[dbo].[OmniBus_CLD_ClipDetails] CLD on CLP.FLE_ID = CLD.FLE_ID) 
inner join [omnibus].[dbo].[OmniBus_FLE_Files] fle on clp.FLE_ID = fle.fle_id
where CLD_user_data  like '%.mov%'
and CLD_user_data  not like '%.m2v%'
and CLD_user_data  not like '%.wav%'
and fle.FLE_file_deleted = 0;',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Missing Essence File Check.txt'
有人能就如何克服这个错误提出建议吗

谢谢


Rob

您可以更改此行

where CLD_user_data  like '''%.mov%'''
and CLD_user_data  not like '''%.m2v%'''
and CLD_user_data  not like '''%.wav%'''

看看突出显示的语法。你需要通过将单引号加倍来转义单引号。任何好的动态sql教程都应该演示这一点。这是可行的,但您在每个文件扩展名周围加了3个单引号,实际上应该是两个。