如何在SQL中保存字节数组?

如何在SQL中保存字节数组?,sql,sql-server-2012,bytearray,Sql,Sql Server 2012,Bytearray,如何仅使用SQL或SQL Server Management Studio将字节数组保存到SQL中的单元格中 我将一个图像转换为字节数组,现在我有一个1000多行的字节数组,我想保存在SQL中的(varbinary(max))单元格中 尝试执行简单的更新命令失败: UPDATE [TableName] SET [Image] = 'lengthy string with over 1000 hard returned lines' WHERE [ItemKey] = 1 但这只会产生错误: 关

如何仅使用SQL或SQL Server Management Studio将字节数组保存到SQL中的单元格中

我将一个图像转换为字节数组,现在我有一个1000多行的字节数组,我想保存在SQL中的(
varbinary(max)
)单元格中

尝试执行简单的更新命令失败:

UPDATE [TableName]
SET [Image] = 'lengthy string
with over
1000 hard returned lines'
WHERE [ItemKey] = 1
但这只会产生错误:

关键字“WHERE”附近的语法不正确

删除WHERE子句(这没有意义,因为我需要指定要将其保存到的数据行)可以获得错误:

不允许从数据类型varchar(max)隐式转换为varbinary(max)。使用CONVERT函数运行此查询

我显然做错了什么,我不知道是什么。我环顾四周,每个人似乎都在用C代码来做这件事,如果我需要更频繁地做这件事,那就好了,但我只想把这些数据放在一个单元格中一次。

这可能对你有用:

像这样的东西是你需要包装你的数据

SELECT CONVERT(VARBINARY(25), '0x9473FBCCBC01AF', 1);
这可能适用于您:

像这样的东西是你需要包装你的数据

SELECT CONVERT(VARBINARY(25), '0x9473FBCCBC01AF', 1);

以下是插入、更新和选择返回数据的示例:

DECLARE @TableName TABLE
(
  [Cell] INT,
  [Image] VARBINARY(MAX)
)

INSERT INTO @TableName VALUES (1, CONVERT(VARBINARY(MAX), 'Test'))

UPDATE @TableName
SET [Image] = (CONVERT(VARBINARY(MAX), 'lengthy string
with over
1000 hard returned lines'))
WHERE [Cell] = 1

SELECT [Image] FROM @TableName

SELECT CONVERT(VARCHAR(MAX), [Image]) FROM @TableName

以下是插入、更新和选择返回数据的示例:

DECLARE @TableName TABLE
(
  [Cell] INT,
  [Image] VARBINARY(MAX)
)

INSERT INTO @TableName VALUES (1, CONVERT(VARBINARY(MAX), 'Test'))

UPDATE @TableName
SET [Image] = (CONVERT(VARBINARY(MAX), 'lengthy string
with over
1000 hard returned lines'))
WHERE [Cell] = 1

SELECT [Image] FROM @TableName

SELECT CONVERT(VARCHAR(MAX), [Image]) FROM @TableName