2017-01-09 52 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.