sql - 如何使用存储在 varchar 列中的路径更新 varbinary(max) 列?

标签 sql sql-server stored-procedures varbinarymax

我目前有一个 varchar(255) 列,用于存储小图像文件的路径。我想尝试将文件加载到 varbinary(max) 类型的新列中,但不知道如何编写存储过程来执行此操作。像这样的东西

UPDATE MyTable
SET image = "file located in field imagePath"

我知道这没有意义,因为我没有 where 子句,但我应该在它的位置放什么?

最佳答案

您可能需要创建一个存储过程来执行此操作。我已经使用此处概述的过程取得了良好的效果:

Reading and Writing Files in SQL Server using T-SQL

我的目的只包括文本,但提到了二进制。

根据您的 SQL Server 版本,您可以尝试 openrowset ,或者正如@Jeremy Pridemore 提到的那样,您可以 use the CLR .

更新

如果您使用的是 SQL2005 或更高版本,此代码可能对您有所帮助:

declare @MyFile varbinary(max)
select @MyFile = bulkcolumn 
from openrowset (bulk 'C:\SomeFolder\SomeImage.jpg', single_blob) myfile
select @MyFile

关于sql - 如何使用存储在 varchar 列中的路径更新 varbinary(max) 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931821/

相关文章:

sql - MS SQL 列相当于 C# 'readonly'?

sql - Access 加入 TRANSFORM/PIVOT 查询

sql - 执行后重命名存储过程多列

sql - 如何在另一个存储过程中的一个存储过程中使用 SELECT 的结果?

使用临时表时 pyspark 中的 SQL 查询错误

使用存储过程时出现php错误

MySQL 函数占用太多 CPU

mysql - 在我的案例中,如何从第一个表中找到第二个表中丢失的行?

sql - 使用 SQL 从一组值中查找缺失值

sql-server - 存储过程中的删除表无法正常工作?