3

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

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

我知道这是没有意义的,因为我没有 where 子句,但我会在它的地方放什么?

4

2 回答 2

3

您可能需要创建一个存储过程来执行此操作。我已经使用了这里列出的 procs,效果很好:

使用 T-SQL 在 SQL Server 中读取和写入文件

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

根据您的 SQL Server 版本,您可以尝试openrowset,或者正如@Jeremy Pridemore 所提到的,您可以使用 CLR

更新

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

declare @MyFile varbinary(max)
select @MyFile = bulkcolumn 
from openrowset (bulk 'C:\SomeFolder\SomeImage.jpg', single_blob) myfile
select @MyFile
于 2012-03-29T20:31:17.240 回答
1

SQL 不太适合访问文件系统,但在 C#/VB.NET 程序中完成这项任务并不难。

编辑:如果您使用的是 SQL 2005 或更高版本,Tim Lehner 的 OPENROWSET 解决方案是理想的。

于 2012-03-29T20:17:56.703 回答