微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 如何在不使用.NET的情况下从SQL Server 2008 FILESTREAM字段中提取数据

我有一个sql Server 2008数据库,带有VARCHAR(MAX)FILESTREAM列.我可以使用以下语法将记录加载到其中:
`INSERT INTO DocumentRepository(DocumentExtension,DocumentName,Document) 
 SELECT
 'doc' AS DocumentExtension,'Hamlet.doc' AS DocumentName,* FROM OPENROWSET(BULK 'D:\Docs\Hamlet.doc',SINGLE_BLOB) 
   AS Document;`

这加载我的word文档就好了.我想知道的是如何使用sql Server提供的工具将数据提取回磁盘.可能是T-sql,bcp等,真的不在乎我只是想知道一种方法来做到这一点,而不必诉诸于编写.NET应用程序.

我已经使用-c,-n,-N和-w开关对bcp进行了实验,它将提取文档,但格式不正确.当我在Word中打开它时,开头有很多二进制乱码,而文本在那里所有格式都消失了.

谢谢!

解决方法

很棒的问题 – 基本上你不能 – 你可以选择路径并直接从文件系统访问文件

但是从Books online开始你会注意到这些操作

>插入
>更新
>查询
>备份

FILESTREAM通过将varbinary(max)二进制大对象(BLOB)数据存储为文件系统上的文件,将sql Server数据库引擎与NTFS文件系统集成在一起. Transact-sql语句可以插入,更新,查询,搜索和备份FILESTREAM数据. Win32文件系统接口提供对数据的流式访问.

原文地址:https://www.jb51.cc/mssql/79935.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐