Python3 | SqlServer 插入单引号

SqlServer 中如何向数据库插入带有单引号(')的字符串

Posted by Haauleon on April 17, 2023

SqlServer 插入单引号

相关链接:
SqlServer如何向数据库插入带有单引号(’)的字符串



在 SqlServer 中执行如下 SQL 语句会抛出异常

1
UPDATE tablename SET Country='US',Province='MO',City='Lee's Summit',Address1='',Address2='',Address3='',PostCode='64086',Telephone='',isSpider='1' WHERE ClientOrderCode='xxx'
1
2
3
4
5
6
7
UPDATE tablename SET Country='US',Province='MO',City='Lee's Summit',Address1='',Address2='',Address3='',PostCode='64086',Telephone='',isSpider='1' WHERE ClientOrderCode='xxx'
> Msg 102, Level 15, State 1, Server DataServer002, Procedure , Line 0
“s”附近有语法错误。
> Msg 105, Level 15, State 1, Server DataServer002, Procedure , Line 0
字符串 '' 后的引号不完整。
> [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]“s”附近有语法错误。 (102)
[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]字符串 '' 后的引号不完整。 (105)


原因:
'Lee's Summit' 中的单引号 's 导致了异常。正确的 SqlServer 语法如下:

1
UPDATE tablename SET Country='US',Province='MO',City='Lee''s Summit',Address1='',Address2='',Address3='',PostCode='64086',Telephone='',isSpider='1' WHERE ClientOrderCode='xxx'


解决方法:

1
str.replace("'", "''")   # 将单引号 ' 替换成两个单引号 '' 就可以解决