0
我有一個用於填充網站從某些表
網站受到攻擊,可能使用一些SQL注入技術和多列在此表(文字列)SQL Server表中刪除垃圾郵件SQL注入有一些HTML,通常就像<div>some stuff and some links</div>
。
我只是想用第一<div>
後刪除一切:
UPDATE MyTable
SET MyField = REPLACE (MyField,
SUBSTRING(MyField, CHARINDEX('<', MyField), LEN(MyField)), '')
WHERE MyField LIKE '%<%'
它在nvarchar
和char
列工作的偉大,但它不nvarchar(max)
列工作。我得到這個錯誤:
Msg 8152, Level 16, State 10, Row 1
String or binary data would be truncated.Msg 3621, Level 0, State 0, Row 1
The statement has been terminated.
我應該怎麼做才能從nvarchar(max)
欄中移除這個東西?
實際上,字符串的結尾並不重要,它可以是任何高達8000個字符的字符,沒有問題... 另外,我相信在該字段中沒有其他「<」字符,大多數是城市,地區,國名... – Antonio
它正常工作nvarchar領域....但在nvarchar(最大)給出錯誤... – Antonio
你應該嘗試選擇Len(...子字符串內的替換函數... ... )並檢查Len是否始終<最大值 – kiks73