17

我有一个包含一VARCHAR(MAX)列的表,我需要将其更改为VARBINARY(MAX).

我尝试使用命令

ALTER TABLE TableName ALTER COLUMN ColumnName VARBINARY(MAX)

但我得到了错误

消息 257,级别 16,状态 3,第 1 行
不允许从数据类型 varchar(max) 到 varbinary(max) 的隐式转换。
使用 CONVERT 函数运行此查询。

该表没有数据,所以我不明白为什么它抱怨数据转换。

4

2 回答 2

24

您不能使用ALTER TABLE语句执行此转换,因为varchar(max)tovarbinary(max)转换需要显式转换。因此,您应该按照以下步骤更改您的表格:

  1. 用新列更改表VARBINARY(MAX)
  2. 如果VARCHAR(MAX)列中有现有数据,请使用更新语句将数据添加到VARBINARY列中
  3. 更改表以删除VARCHAR(MAX)
  4. varbinary将列重命名为varchar名称(@Ben Thul的每条评论)
于 2013-01-26T17:32:12.400 回答
1

转换VarcharInt,然后更改IntBinary.

于 2021-08-14T16:58:23.917 回答