加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-03-16 06:33:36 所属栏目:MsSql教程 来源:网络整理
导读:我想使用此查询在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. Us

我想使用此查询在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'

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读