如何在SQL中保存字节数组?
如何仅使用SQL或SQL Server Management Studio将字节数组保存到SQL中的单元格中 我将一个图像转换为字节数组,现在我有一个1000多行的字节数组,我想保存在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 但这只会产生错误: 关
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