SQL语法不正确-字符串后的引号未闭合

SQL语法不正确-字符串后的引号未闭合,sql,sql-server-2005,Sql,Sql Server 2005,现在我在字符串“%bambon.Widgets.RequestApproval.CollectTaskOrder BY Date DESC”后面有一个字符串a=“未闭合的引号”。在“%bambon.Widgets.RequestApproval.CollectTask ORDER BY Date DESC”附近有不正确的语法。 我正在使用replace(“,””) 替换(“%”,“[%]”) 替换(“[”,“[]”) 作为字符串strSQL= select * from studiologs

现在我在字符串“%bambon.Widgets.RequestApproval.CollectTaskOrder BY Date DESC”后面有一个字符串
a=“未闭合的引号”。在“%bambon.Widgets.RequestApproval.CollectTask ORDER BY Date DESC”附近有不正确的语法。

我正在使用replace(“,””) 替换(“%”,“[%]”) 替换(“[”,“[]”)

作为字符串strSQL=

select * from studiologs 
where [Message] 
like '%Unclosed quotation mark after the character string ''%Bamboo.Widgets.RequestApproval.CollectTask   ORDER BY Date DESC''.  Incorrect syntax near ''%Bamboo.Widgets.RequestApproval.CollectTask   ORDER BY Date DESC''.%'
但结果总是空的 请帮我更换过滤器的这个字符串


谢谢大家

我想你们在查询结束时又漏掉了一个引号-

select * from studiologs where [Message] like '%Unclosed quotation mark after the character string ''%Bamboo.Widgets.RequestApproval.CollectTask ORDER BY Date DESC''%'
或者,如果字符串没有

select * from studiologs where [Message] like '%Unclosed quotation mark after the character string ''%Bamboo.Widgets.RequestApproval.CollectTask ORDER BY Date DESC%'

根据您正在搜索的内容,这里我要做的最好的事情是将SQL查询转换为一个过程,这样您给它的字符串就不需要过滤,因为字符串中的标点符号不会影响查询的语法

比如说:

USE MYDATABASE
CREATE PROC GET_STUDIO_LOGS
@INPUT_STRING AS NVARCHAR(1024)
AS 
BEGIN
SELECT * FROM STUDIOLOGS WHERE [Message] LIKE '%' + @INPUT_STRING + '%'
END


EXEC GET_STUDIO_LOGS 'Unclosed quotation mark after the character string ''%Bamboo.Widgets.RequestApproval.CollectTask ORDER BY Date DESC''. Incorrect syntax near ''%Bamboo.Widgets.RequestApproval.CollectTask ORDER BY Date DESC''.'
如果使用程序提交SQL,则可以按原样提交字符串参数,而不改变标点符号。在SQL中以本机方式提交时,只需向每个要作为字符串一部分的引号添加另一个“
(引号)

如果试图转义%标记,可以先设置转义字符:

SET ESCAPE '\';
SELECT '\%abc' FROM Table

试试看,告诉我是怎么回事。

谢谢,但现在我使用了studiologs where[Message]中的条件,如%parameter%select*类似于字符串“%bambon.Widgets.RequestApproval.CollectTaskOrder BY Date DESC.”后面的“%Unclosed引号”。在“%bambon.Widgets.RequestApproval.CollectTask ORDER BY Date DESC”附近的语法不正确。%character处出现错误,但无法修复。请帮助meI编辑我的答案。请从m运行这两个查询y回答并查看是否仍然出现错误。不应该出现任何错误。我已尝试使用studiologs中的查询SQL select*,其中[Message]类似于'%[字符串“%bambon.Widgets.RequestApproval.CollectTask ORDER BY Date DESC”后面未闭合的引号。“%bambon.Widgets.RequestApproval.CollectTask ORDER BY Date DESC”附近的语法不正确。]%“ESCAPE'\'但结果总是空的请告诉我为什么?您需要在需要转义的每个函数字符之前使用转义字符。因此,在每个基于字符串的
%
和每个基于字符串的
之前,请将其更改为:
select*from studiologs where[Message]like'%\[字符串\'\%Bamboin.Widgets.RequestApproval.CollectTask ORDER BY Date DESC\'后未闭合的引号。\'\%Bamboin.Widgets.RequestApproval.CollectTask ORDER BY Date DESC\'附近的语法不正确。\]%“ESCAPE'\'
假设您需要将第一个和最后一个
%
保留在
Like
语句中,那么它应该会起作用。