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

use*_*867 3 sql-server sql-server-2008

我有一个 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;`
Run Code Online (Sandbox Code Playgroud)

这很好地加载了我的 Word 文档。我想知道的是如何使用 SQL Server 提供的工具将数据提取回磁盘。可能是 T-SQL、bcp 等,并不在乎我只想知道一种无需编写 .NET 应用程序就可以做到这一点的方法。

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

谢谢!

Pau*_*dal 5

鉴于我为 Microsoft 编写了 FILESTREAM 白皮书,我觉得承认这一点有点尴尬 - 但我不知道答案。我的感觉和 UndertheFold 的感觉一样——你做不到。我想看看我是否可以找到任何使用 SSIS 做到这一点的方法,但我不能。