【问题标题】:SQL syntax error when I try to update long string with non-alphanumeric charcters当我尝试使用非字母数字字符更新长字符串时出现 SQL 语法错误
【发布时间】:2021-05-07 01:02:24
【问题描述】:

我正在尝试更新表中的字符串,但该字符串包含很多非字母数字字符。当我尝试运行更新语句时,它会导致 SSMS 返回错误。

我正在运行一个相当标准的更新语句:

UPDATE Table
SET TextObj = 'asfsdsad $$%))# asdfas'd #$%^&)asfda'
WHERE ID = 6 AND Name = 'Text'

您可以看到我要更新的字符串包含很多非字母数字字符。我像往常一样将字符串括在单引号中,但 SSMS 抛出语法错误:

字符串' where ID = 6 and Name = 'Text''后面的非右引号。

我也试过双引号无济于事。如何更新此字符串?

【问题讨论】:

  • 你的字符串中有单引号。逃脱它。

标签: sql


【解决方案1】:

你必须转义字符串内的单引号:

UPDATE Table
SET TextObj = 'asfsdsad $$%))# asdfas''d #$%^&)asfda'
WHERE ID = 6 AND Name = 'Text'

【讨论】:

  • 您确定要在此处转义字符串吗?您刚刚添加了另一个单引号,因此您可以关闭并打开新字符串。可能行不通。
  • @ex4 第二个单引号转义了字符串中的单引号
  • 好的。老实说,我不知道这种语法。我会使用\' 进行转义。你每天都在学习。
  • 我确实需要字符串中的单引号。用另一个单引号转义它会改变字符串本身吗?
  • @Steven no ist 只告诉sql引擎不是String的结尾
猜你喜欢
  • 2019-08-27
  • 2019-10-29
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多