Я пытаюсь выполнить хранимую процедуру usp_find, которая принимает строку поиска и показывает результаты.Заявление EXEC с параметрами с одинарными кавычками
Он отлично работает нормально для простых текстов, но когда я пытаюсь выполнить с параметром, имеющий одинарные кавычки, он не в состоянии выполнить:
EXECUTE usp_find 'code = ''A'''
Моя строка поиска code = 'A'
, Здесь А в одинарные кавычки поэтому я применил две одинарные кавычки, как мы обычно делаем для цитаты, чтобы убежать.
Я получаю сообщение об ошибке:
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near 'A'.
Любые предложения?
CREATE PROC dbo.usp_find(@LikeSearchstr VARCHAR(255))
AS
BEGIN
DECLARE @cmd VARCHAR(MAX)
SET @cmd='
SELECT Name,OBJECT_DEFINITION(OBJECT_ID) as Text_Definition
FROM sys.objects
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE ''%'[email protected]+'%'''
EXEC(@CMD)
END
Является sp_find обычной хранимой процедурой? Если да, то [** не используйте префикс 'sp' для пользовательского SP **] (https://msdn.microsoft.com/en-us/library/dd172115 (v = vs.100) .aspx). –
можете ли вы добавить код sp_find? – ughai
Я думаю, что проблема заключается в том, что proc –