在SQL Server中将数据类型Varchar更改为Varbinary(max)

前端之家收集整理的这篇文章主要介绍了在SQL Server中将数据类型Varchar更改为Varbinary(max)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用此查询sql Server中将varchar更改为varbinary(max):
ALTER TABLE  [dbo].[Attachments]
ALTER COLUMN [Content]  varbinary(max)  NOT NULL

但是这会引发以下异常:

Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query

在这种情况下我应该改变什么?

解决方法

你确定要varbinary(最大)吗?如果是这样,我相信您需要按步骤执行此操作:
ALTER TABLE Attachments
ADD Content2 varbinary(max)

UPDATE Attachments
SET Content2 = CONVERT(varbinary(MAX),Content)

ALTER TABLE Attachments
DROP COLUMN Content

sp_RENAME 'Attachments.[Content2]','[Content]','COLUMN'

根据表的性质,通过select转换为以下内容可能会更快:

SELECT Content = CAST(Content AS VARBINARY(MAX)),other fields
INTO NewTable
FROM OldTable

然后删除旧表并重命名新表:

DROP TABLE OldTable
GO
SP_RENAME 'NewTable','OldTable'

猜你在找的MsSQL相关文章