我怎样才能用一个简单的插入语句插入二进制文件中的数据转换成二进制SQL字段?(How can I i

2019-06-25 19:10发布

我有一个包含一个表中的SQL Server 2000的image列。

如何通过指定文件的路径文件插入该列的二进制数据?

CREATE TABLE Files
(
  FileId int,
  FileData image
)

Answer 1:

如果你的意思是使用文字,你只需要创建一个二进制字符串:

insert into Files (FileId, FileData) values (1, 0x010203040506)

而你将有对的FileData领域的一个六字节值的记录。


你表明你只想指定文件名,你不能与SQL Server 2000(或我所知道的任何其他版本)做评论。

您将需要一个CLR存储过程来做到这一点在SQL Server 2005/2008或扩展存储过程(但我会避免不惜一切代价,除非你有),这需要的文件名,然后插入数据(或返回字节串,但都不可能很长)。


在问候只能够得到一个SP /查询数据时,我会说,答案是肯定的,因为如果你给SQL Server从文件系统读取文件的能力的问题,你什么时候AREN你做什么”牛逼通过Windows身份验证连接,哪些用户用来确定权利? 如果你正在运行的服务作为一个管理员(上帝保佑),那么你可以有哪些不应该被允许的权利的高度。



Answer 2:

我相信这将是地方接近。

INSERT INTO Files
(FileId, FileData)
SELECT 1, * FROM OPENROWSET(BULK N'C:\Image.jpg', SINGLE_BLOB) rs

一些需要注意的,在SQL Server 2005和SQL Server 2008的数据类型上面运行varbinary(max) 。 未与图像作为数据类型进行测试。



文章来源: How can I insert binary file data into a binary SQL field using a simple insert statement?