如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。

时间:2022-11-05 00:55:25
sql server varbinary(max)

20 个解决方案

#1


字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?

#2


如果是那样的话可以考虑使用ssis或者直接Ctrl+Shift+F ,然后执行你的语句

#3


引用 1 楼 hwhmh2010 的回复:
字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

#4


引用 3 楼 GANSUYZHY 的回复:
Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

#5


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

Ctrl+Shift+F 不行,我时时ssis吧

#6


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go

#7


引用 6 楼 GANSUYZHY 的回复:
Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go


这个,你试了吗?如何?

#8


如果只是临时使用的话可以找一找ssms 的插件来实现,如果是需要重复执行程序的话最好写代码。
我自己写过这样的ssms插件,但这个是公司内部使用的,网上应该有人写过这样的插件。

#9


引用 8 楼 lg314 的回复:
如果只是临时使用的话可以找一找ssms 的插件来实现,如果是需要重复执行程序的话最好写代码。
我自己写过这样的ssms插件,但这个是公司内部使用的,网上应该有人写过这样的插件。
用SSMS怎么处理呢

#10


引用 楼主 GANSUYZHY 的回复:
如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

#11


引用 10 楼 rd16 的回复:
Quote: 引用 楼主 GANSUYZHY 的回复:

如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

但是我现在建立的MFC应用工程,用C++代码怎么实现呢?

#12


引用 11 楼 GANSUYZHY 的回复:
Quote: 引用 10 楼 rd16 的回复:

Quote: 引用 楼主 GANSUYZHY 的回复:

如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

但是我现在建立的MFC应用工程,用C++代码怎么实现呢?

上面已经有SQL语句了,你用C++执行。

#13


引用 7 楼 hwhmh2010 的回复:
Quote: 引用 6 楼 GANSUYZHY 的回复:

Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go


这个,你试了吗?如何?

保存下来的文件有问题,打不开,所以请教

#14


前台程序更好处理了,更方便

#15


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

#16


引用 15 楼 wufeng4552 的回复:
Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

好像sp_textcopy 可以
没干过 不知道行不

#17


引用 16 楼 wufeng4552 的回复:
Quote: 引用 15 楼 wufeng4552 的回复:

Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

好像sp_textcopy 可以
没干过 不知道行不

textcopy.exe 
http://blog.csdn.net/itblog/article/details/762672

#18


还有没有人帮忙看一下?

#19


引用 18 楼 GANSUYZHY 的回复:
还有没有人帮忙看一下?

前台程序做
很简单吧

#20


不太明白你的意图. 如果是用类似于content varbinary (max) filestream not null这样的字段保存了文件, 那就说明文件被保存在数据库端服务器指定的某个路径里, 要不你试试dos指令? 
execute sp_configure 'show advanced options', 1
go
execute sp_configure 'xp_cmdshell', 1
go
reconfigure with override
go
前提是你必须已经把"xp_cmdshell"配置启用.
create database Test
on primary
(
name = 'Test_data',
filename = 'e:\Test\Test.mdf'
),
filegroup TestFileGroup contains filestream
(
name = 'Test_file',
filename = 'e:\Test\Test.ndf'
)
log on
(
name = 'Test_log',
filename = 'e:\Test\Test.ldf'
)
go
在建库的语句中应该有文件路径的参照.
不晓得数据库sql server 2008是否自带文件复制功能, 用sql server去调用dos命令试试.
execute xp_cmdshell 'copy 原文件路径, 目的文件路径(比如c盘)', no_output
go
俺们确实没这么做过, 只是一个突然想到的临时思路. 

#1


字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?

#2


如果是那样的话可以考虑使用ssis或者直接Ctrl+Shift+F ,然后执行你的语句

#3


引用 1 楼 hwhmh2010 的回复:
字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

#4


引用 3 楼 GANSUYZHY 的回复:
Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

#5


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

Ctrl+Shift+F 不行,我时时ssis吧

#6


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go

#7


引用 6 楼 GANSUYZHY 的回复:
Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go


这个,你试了吗?如何?

#8


如果只是临时使用的话可以找一找ssms 的插件来实现,如果是需要重复执行程序的话最好写代码。
我自己写过这样的ssms插件,但这个是公司内部使用的,网上应该有人写过这样的插件。

#9


引用 8 楼 lg314 的回复:
如果只是临时使用的话可以找一找ssms 的插件来实现,如果是需要重复执行程序的话最好写代码。
我自己写过这样的ssms插件,但这个是公司内部使用的,网上应该有人写过这样的插件。
用SSMS怎么处理呢

#10


引用 楼主 GANSUYZHY 的回复:
如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

#11


引用 10 楼 rd16 的回复:
Quote: 引用 楼主 GANSUYZHY 的回复:

如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

但是我现在建立的MFC应用工程,用C++代码怎么实现呢?

#12


引用 11 楼 GANSUYZHY 的回复:
Quote: 引用 10 楼 rd16 的回复:

Quote: 引用 楼主 GANSUYZHY 的回复:

如何获取SQL Server2008保存的varbinary(MAX)字段文件并将该文件保存到某个文件夹当中,如“C:\”?请教各位。


大哥,你这个用C#实现吧,就几句代码的事。


用纯SQL来实现不太好吧,SQL还要有你其它盘符的权限。

比如存在E盘,你的SQL的帐户还要有E盘的写入权限。

但是我现在建立的MFC应用工程,用C++代码怎么实现呢?

上面已经有SQL语句了,你用C++执行。

#13


引用 7 楼 hwhmh2010 的回复:
Quote: 引用 6 楼 GANSUYZHY 的回复:

Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

保存的语句是什么呢?我在网上看到这样一段语句,但是没有成功。
在SQL Server 2008中将二进制数据复制到图像文件,要对Windows的文件进行操作,我们需要用到xp_cmdshell扩展存储过程,在使用之前我们需获得执行该命令的权限:
   EXEC sp_configure 'show advanced options', 1
   GO
   RECONFIGURE
   GO
   EXEC sp_configure 'xp_cmdshell', 1
   GO
   RECONFIGURE
   GO
  通过执行xp_cmdshell将二进制数据复制到图像文件:
  EXEC   master..xp_cmdshell   'bcp "SELECT ImageData FROM ImageTest.dbo.ImageTable" queryout "c:\bb.jpg"-T -c'
  Go


这个,你试了吗?如何?

保存下来的文件有问题,打不开,所以请教

#14


前台程序更好处理了,更方便

#15


引用 4 楼 hwhmh2010 的回复:
Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

#16


引用 15 楼 wufeng4552 的回复:
Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

好像sp_textcopy 可以
没干过 不知道行不

#17


引用 16 楼 wufeng4552 的回复:
Quote: 引用 15 楼 wufeng4552 的回复:

Quote: 引用 4 楼 hwhmh2010 的回复:

Quote: 引用 3 楼 GANSUYZHY 的回复:

Quote: 引用 1 楼 hwhmh2010 的回复:

字段文件---什么意思?是数据库varbinary(MAX)字段里面存储的数据吗?
我是将文档,图片等等BLOB存储在数据类型为varbinary(max)的字段中,现在把保存的内容读出来,能够存储在某个文件下面,该怎么做呢?

Ctrl+Shift+F 然后执行一下,试了吗?或者用ssis

这个只是将查询结果保存成文件
varbinary(MAX) 保存成具体的文件 
貌似还不行
建议程序来做吧

好像sp_textcopy 可以
没干过 不知道行不

textcopy.exe 
http://blog.csdn.net/itblog/article/details/762672

#18


还有没有人帮忙看一下?

#19


引用 18 楼 GANSUYZHY 的回复:
还有没有人帮忙看一下?

前台程序做
很简单吧

#20


不太明白你的意图. 如果是用类似于content varbinary (max) filestream not null这样的字段保存了文件, 那就说明文件被保存在数据库端服务器指定的某个路径里, 要不你试试dos指令? 
execute sp_configure 'show advanced options', 1
go
execute sp_configure 'xp_cmdshell', 1
go
reconfigure with override
go
前提是你必须已经把"xp_cmdshell"配置启用.
create database Test
on primary
(
name = 'Test_data',
filename = 'e:\Test\Test.mdf'
),
filegroup TestFileGroup contains filestream
(
name = 'Test_file',
filename = 'e:\Test\Test.ndf'
)
log on
(
name = 'Test_log',
filename = 'e:\Test\Test.ldf'
)
go
在建库的语句中应该有文件路径的参照.
不晓得数据库sql server 2008是否自带文件复制功能, 用sql server去调用dos命令试试.
execute xp_cmdshell 'copy 原文件路径, 目的文件路径(比如c盘)', no_output
go
俺们确实没这么做过, 只是一个突然想到的临时思路.