微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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'

原文地址:https://www.jb51.cc/mssql/84191.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐