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

How do you save a Byte array in SQL?

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

我将图像转换为字节数组,现在我有一个 1,000 多行字节数组,我想将其保存在 SQL.

的 (varbinary(max)) 单元格中

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

UPDATE [TableName]
SET [Image] = 'lengthy string
with over
1000 hard returned lines'
WHERE [ItemKey] = 1

但这只会给出错误:

Incorrect syntax near the keyword 'WHERE'.

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

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

我显然做错了什么,但我不确定是什么。我环顾四周,似乎每个人都在 C# 代码中这样做,如果我需要更频繁地这样做会很好,但我只是想一次将这些数据放在一个单元格中。

这可能对你有用: https://dba.stackexchange.com/questions/63743/converting-a-varchar-to-varbinary

像这样的东西是你需要环绕你的数据的东西

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