我想把一个varchar(50)列转换为uniqueidentifier,但这个错误一直在冒出来,我不知道为什么。
"Msg 8169, Level 16, State 2, Line 1 Conversion failed when converting from a character string to uniqueidentifier."
该列中的数据目前是一个有效的唯一标识符。
做我想做的事的正确方法是什么?
豁达的便当 · 阿沛-阿旺晋美逝世_新闻中心_新浪网· 1 年前 · |
活泼的毛豆 · 专访周立波:幽默也是一种实力_手机新浪网· 1 年前 · |
神勇威武的地瓜 · 如果让你向别人推荐十部电影,你会推荐哪十部?· 1 年前 · |
玩命的牛肉面 · 神偷王妃:我家王爷惹不起-第47话 他不是你的良人· 1 年前 · |
豁达的便当 · 阿沛-阿旺晋美逝世_新闻中心_新浪网 1 年前 |
活泼的毛豆 · 专访周立波:幽默也是一种实力_手机新浪网 1 年前 |
神勇威武的地瓜 · 如果让你向别人推荐十部电影,你会推荐哪十部? 1 年前 |
玩命的牛肉面 · 神偷王妃:我家王爷惹不起-第47话 他不是你的良人 1 年前 |
你有任何包含空字符串的列吗?即NOT NULL,字符串长度=0。
或者你是否有任何非标准字符的GUID? 例如,不是0-9,A-F?
在我的应用程序中,我们有一些非标准的GUID,是在我继承它之前创建的...
对于未来的帮助,这个脚本可以帮助你找到任何无效的行。
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(GUID, '1', '0'), '2', '0'), '3', '0'), '4', '0'), '5', '0'), '6', '0'), '7', '0'), '8', '0'), '9', '0'), 'A', '0'), 'B', '0'), 'C', '0'), 'D', '0'), 'E', '0'), 'F', '0'), COUNT(*) FROM TABLE GROUP BY REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(GUID, '1', '0'), '2', '0'), '3', '0'), '4', '0'), '5', '0'), '6', '0'), '7', '0'), '8', '0'), '9', '0'), 'A', '0'), 'B', '0'), 'C', '0'), 'D', '0'), 'E', '0'), 'F', '0')
任何有无效Guids的行都会显示出来,可以通过以下方式找到。