Sp_executesql给出未闭引号错误



我已经编写了简单的存储过程,并使用sp_executesql来处理引号错误和sql注入,但是当我在参数中传递单个引号时,它仍然显示我Unclosed quotation mark after the character string ''.

alter procedure dbo.quote_test
(
    @quoteid int
)
as
begin
declare @sqlstring as nvarchar(max)
declare @paramdef as nvarchar(100)
set @sqlstring = 'select * from quote where quote_id = @quoteid';
set @paramdef = N'@quoteid int';
exec sp_executesql @sqlstring,@paramdef, @quoteid
end
exec dbo.quote_test 10'

我不确定您想要完成什么,但是存储过程接受一个整数作为参数。因此,这将工作:

exec dbo.quote_test 10

这个不应该工作:

exec dbo.quote_test 'abc'

可能是由于您的EXEC语句中有引号。

exec dbo。quote_test 10 '

相关内容

  • 没有找到相关文章

最新更新