如何仅使用SQL或SQL Server Management Studio将字节数组保存到SQL中的单元格中?
我将图像转换为字节数组,现在我有一个1000多行字节数组,我希望保存在SQL中的(Content-Type
)单元格中。
尝试执行简单的更新命令失败:
varbinary(max)
但这只会出错:
关键字' WHERE'附近的语法不正确。
删除WHERE子句(这没有意义,因为我需要指定我试图将其保存到哪一行数据)设法得到错误:
不允许从数据类型varchar(max)到varbinary(max)的隐式转换。使用CONVERT函数运行此查询。
我明显做错了什么,我不确定是什么。我环顾四周,似乎每个人都在C#代码中这样做,如果我需要更频繁地这样做,那就好了,但我只是想把这些数据放在一个单元格中一次。 / p>
答案 0 :(得分:2)
以下是插入,更新和选择数据的示例:
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
答案 1 :(得分:1)
这可能适合您: https://dba.stackexchange.com/questions/63743/converting-a-varchar-to-varbinary
这样的事情就是你需要包装数据
SELECT CONVERT(VARBINARY(25), '0x9473FBCCBC01AF', 1);