sql - 在 SQL 的 Exec 语句中使用单引号

标签 sql sql-server tsql

我在从带有单引号的存储过程执行 SQL 语句时遇到问题。这是我正在执行的存储过程的查询。

EXEC('UPDATE myTABLE 
         SET myCOLUMN = (SELECT Replace('OSINGLEQUOTEJOHN DOE','SINGLEQUOTE','''')')

我正在尝试使用值“O'John Doe”更新表“myTABLE”列“myCOLUMN”

实际的查询是这样的,我在上面的例子中尝试简化一下

EXEC('UPDATE myTABLE 
         SET myCOLUMN = (SELECT Replace('+ @IntegrationGuardian2FullName +','SINGLEQUOTE','''')')

@IntegrationGuardian2FullName 的值为“OSINGLEQUOTEJOHN DOE”。希望这更有意义。

任何机构都可以帮助我格式化此查询吗?

最佳答案

用途:

EXEC('UPDATE myTABLE 
        SET myCOLUMN = (SELECT REPLACE(''OSINGLEQUOTEJOHN DOE'',
                                       ''SINGLEQUOTE'',
                                       ''''''''))')

您提供的内容需要在字符串两边加上两个单引号,以及要替换的内容,以及额外的单引号,因为动态 SQL 需要单引号转义。

关于sql - 在 SQL 的 Exec 语句中使用单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364232/

相关文章:

mysql - 数据库设计 - 将列中的数据加倍

sql - 获取表列表但不包括系统表(SQL Server 2K)?

c# - 为什么我突然收到这个错误?

sql-server - 即时将 SQL Server 查询转换为 Postgres

sql - 更新显示未找到数据错误

sql - Oracle PL/SQL 检查参数是否有特殊字符

php - 通过浏览器使用 PDO 将 MySQL 表中的数据存储为 CSV

SQL 通过 temptable 进行分组,如果其中一列值为 1,则获取新列值

sql - 更新表中的重复字段

sql - 如何使用 SQL 获取一年中第一秒的日期?