我有一个表,其中有一个
VARCHAR(MAX)
列,我需要将其更改为 VARBINARY(MAX)
。
我尝试使用命令
ALTER TABLE TableName ALTER COLUMN ColumnName VARBINARY(MAX)
但是我收到了错误
消息 257,第 16 级,状态 3,第 1 行
不允许从数据类型 varchar(max) 隐式转换为 varbinary(max)。
使用 CONVERT 函数运行此查询。
该表没有数据,所以我不明白为什么它会抱怨数据转换。
您无法使用
ALTER TABLE
语句执行此转换,因为 从 varchar(max)
转换为 varbinary(max)
需要显式转换。因此,您应该按照以下步骤更改您的表格:
VARBINARY(MAX)
VARCHAR(MAX)
列中有现有数据,请使用update语句将数据添加到VARBINARY
列VARCHAR(MAX)
列varbinary
列重命名为 varchar
名称(根据 @Ben Thul 的评论)将
Varchar
转换为 Int
,然后将 Int
更改为 Binary
。
只需删除此列并使用新类型 varbinary 再次添加
这对我有用:
ALTER TABLE studentlogins MODIFY password VARBINARY(255);