【问题标题】:Inserting special characters into SQL Server 2008 RE在 SQL Server 2008 RE 中插入特殊字符
【发布时间】:2017-01-09 15:18:33
【问题描述】:

我正在从数据库表中读取一些数据,并且文本包含“/”字符。

我现在需要将此字符串插入到不同的 SQL 表中,但在正确转义它时遇到问题。

如果我读到的字符串包含这个模式:

测试/测试2

经过一些谷歌搜索后,我正在使用插入文本 (谷歌参考 Ref1Ref2

Field1= replace (cast('Test/th' as nvarchar),'/','\\\')

但它仍然返回错误:

消息 8152,第 16 级,状态 2,第 18 行 字符串或二进制数据将被截断。

如果我使用:

Field1= replace (cast('Test/th' as nvarchar),'/','')

一切都好

谁能帮我解决我的逃生条款?

【问题讨论】:

  • 该错误表明您尝试存储的字符串长度超过该列将接受的长度。我认为这与特殊字符无关。 Field1的定义是什么?您还应该在转换中使用带有NVARCHAR 的长度,例如CONVERT(NVARCHAR(20), 'Test/th')
  • 第一次替换有什么意义?您正在使用....正斜杠更改正斜杠的所有实例。
  • 抱歉你是对的,它应该是\

标签: sql sql-server sql-server-2008


【解决方案1】:

我认为您的列字段长度设置为 6。将其更改为 7。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多