gpt4 book ai didi

sql - 动态 SQL 存储过程中的单引号处理

转载 作者:行者123 更新时间:2023-12-04 21:03:54 25 4
gpt4 key购买 nike

我正在使用这样的查询:

ALTER procedure [dbo].[procedure]
@Search nvarchar(100) = ''
declare @LargeComplexQuery nvarchar(max) =
'select * from People where Name like ''%' + @Search + '% order by Name'
exec sys.sp_executesql @LargeComplexQuery

@Search 由程序填充。如果程序返回一个包含单引号的字符串存储过程错误,我该如何处理呢?

如果可能的话,我希望这由存储过程来处理,而不是由程序传递字符串。

最佳答案

在传递参数之前在应用程序中转义引号,或者在 proc 中执行:

declare @Search nvarchar(100) = ''
declare @Search2 nvarchar(100)
declare @LargeComplexQuery nvarchar(max)

set @Search2 = replace(@Search, '''', '''''')

set @LargeComplexQuery = 'select * from People where Name like ''%' + @Search2 + '%''' -- I escaped the quote here too
exec sys.sp_executesql @LargeComplexQuery

关于sql - 动态 SQL 存储过程中的单引号处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com