2017-01-09 53 views
0

我正在读取数据库表中的一些数据,并且文本中包含'/'字符。在SQL Server 2008中插入特殊字符RE

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

如果我读的字符串包含以下模式:

Test/test2

经过一番搜索谷歌,我现在用插入的文本 (谷歌裁判Ref1Ref2

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

但它仍然返回错误:

Msg 8152, Level 16, State 2, Line 18 String or binary data would be truncated.

如果我使用:

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

一切都很好

谁能帮助我与我的例外条款吗?

+1

该错误将表明您尝试存储的字符串比列接受的时间长。我认为这与特殊字符没有任何关系。 'Field1'的定义是什么?您还应该在转换中使用带'NVARCHAR'的长度,例如'CONVERT(NVARCHAR(20),'Test/th')' – GarethD

+1

第一次替换的意义是什么?你正在用正斜杠来改变正斜杠的所有实例。 –

+0

对不起,你是正确的,它是为了\ –

回答

0

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