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