【发布时间】:2019-08-13 21:38:50
【问题描述】:
我有一个 sql 脚本,我在其中构造一个 sql 字符串并将其存储到一个变量中,然后执行该 sql 字符串。
在该 sql 字符串中,我需要从传递的动态变量创建一个新列。该变量的一个可能值包含一个单引号,它会导致我的脚本失败。
我尝试了几种转义引号的方法,但未能使其正常工作。你们中的任何人都可以提供一些帮助吗?非常感谢您!
要执行的简化目标 sql 查询(工作正常):
SELECT 'Alice''s Bakery' AS name
将其作为字符串放入变量后:
DECLARE @sSQLString nvarchar(max)
DECLARE @curName nvarchar(510)
SET @curName = 'Alice''s Bakery'
SET @sSQLString = 'SELECT ''' + @curName + ''' AS name'
EXECUTE sp_executesql @sSQLString
它将失败并给出错误消息:“SQL 错误 [102] [S0001]: 'Bakery' 附近的语法不正确。”
【问题讨论】:
-
嘿,太神奇了!!!!非常感谢!
标签: sql