Mit*_*hil 16 sql t-sql sql-server
我在从具有单引号的存储过程执行SQL语句时遇到问题.这是我正在执行的存储过程的查询.
EXEC('UPDATE myTABLE
SET myCOLUMN = (SELECT Replace('OSINGLEQUOTEJOHN DOE','SINGLEQUOTE','''')')
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用值"O'John Doe"更新表"myTABLE"列"myCOLUMN"
实际查询是这样的,我试着在上面的例子中简化它
EXEC('UPDATE myTABLE
SET myCOLUMN = (SELECT Replace('+ @IntegrationGuardian2FullName +','SINGLEQUOTE','''')')
Run Code Online (Sandbox Code Playgroud)
价值@IntegrationGuardian2FullName
是"OSINGLEQUOTEJOHN DOE".希望更有意义.
任何人都可以帮我格式化这个查询吗?
OMG*_*ies 21
使用:
EXEC('UPDATE myTABLE
SET myCOLUMN = (SELECT REPLACE(''OSINGLEQUOTEJOHN DOE'',
''SINGLEQUOTE'',
''''''''))')
Run Code Online (Sandbox Code Playgroud)
您提供的内容需要两个单引号围绕字符串,以及要替换的内容以及其他单引号,因为动态SQL需要单引号转义.
你需要在引用的字符串中双重转义单引号 - 所以使用两个单引号来包装字符串,以及四个(即两个转义引号),当解析查询时,它们将被转义为一对单引号,然后再次转义为您实际要插入的单引号:
EXEC('UPDATE myTable SET myColumn = ''John''''O Doe''')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24596 次 |
最近记录: |