如何在 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
如何仅使用 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