UNICODE 建议对我不起作用 - ? 字符被视为问号,因此查询将查找所有带有问号的字符串,而不是那些带有 ? 的字符串。
Tom Cooper 在此链接上发布的修复程序对我有用:https : //social.msdn.microsoft.com/forums/sqlserver/en-US/2754165e-7ab7-44b0-abb4-3be487710f31/black-diamond-with-question -标记
-- Find rows with the character
Select * From [MyTable]
Where CharIndex(nchar(65533) COLLATE Latin1_General_BIN2, MyColumn) > 0
-- Update rows replacing character with a !
Update [MyTable]
set MyColumn = Replace(MyColumn, nchar(65533) COLLATE Latin1_General_BIN2, '!')
Run Code Online (Sandbox Code Playgroud)
小智 3
使用Unicode函数:
\n\nDECLARE @TEST TABLE (ID INT, WORDS VARCHAR(10))\n\nINSERT INTO @TEST VALUES (1, \'A\xef\xbf\xbdAA\')\nINSERT INTO @TEST VALUES (2, \'BBB\')\nINSERT INTO @TEST VALUES (3, \'CC\xef\xbf\xbdC\')\nINSERT INTO @TEST VALUES (4, \'DDD\')\n\nSELECT * FROM @TEST WHERE WORDS LIKE \'%\' + NCHAR(UNICODE(\'\xef\xbf\xbd\')) + \'%\'\n\nUPDATE @TEST\nSET WORDS = REPLACE(WORDS, NCHAR(UNICODE(\'\xef\xbf\xbd\')), \'X\')\n\nSELECT * FROM @TEST WHERE WORDS LIKE \'%\' + NCHAR(UNICODE(\'\xef\xbf\xbd\')) + \'%\'\nSELECT * FROM @TEST \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5680 次 |
| 最近记录: |