我有一个表,其中一列的数据类型为sql_variant
。我正试图将列修改为VarChar(800)
,但遇到了一个错误:
不允许从数据类型sql_variant隐式转换为varchar。使用CONVERT函数运行此查询
我尝试在Alter
语句中使用Convert
语句,但遇到了不正确的语法错误。如果有人能阐明如何解决这个问题,我将不胜感激。非常感谢。
脚本:
ALTER TABLE dbo.tmpEmployee
ALTER COLUMN bigVal Varchar(800)
bigVal
是sql_variant
数据类型的列。
这就是错误:
Msg 257,级别16,状态3,第5行
不允许从数据类型sql_variant隐式转换为varchar。使用CONVERT函数运行此查询。
恐怕这不是一项容易的任务,如果列的顺序无关紧要,只需添加一个新列varchar(800(,并尝试将数据从sql_varient插入该列,但是,对于该列中的不同类型的数据,您必须小心使用右转换格式,例如日期和二进制值
尝试此查询
UPDATE dbo.tmpEmployee
SET bigVal = CONVERT(varchar(800),bigVal)
FROM tmpEmployee
ALTER TABLE dbo.tmpEmployee
ALTER COLUMN bigVal Varchar(800)