我正在使用Microsoft SQL Server 2008 R2。我在表varbinary
中有一个RelatedData_img
列Reminderimage
。在该列中,我存储Word,Excel文件,图像(png,bmp或jpg格式)或文本文件等。现在我想使用命令将该列中的数据存储到磁盘。
我尝试使用此BCP
命令:
bcp "SELECT RelatedData_img FROM Reminderimage.dbo.Reminderimage" queryout "D:\testing6" -n -S PCname\SQLMANAGEMENT,25222 -Utest -Ptest
我得到包含xml文件的文件。我尝试过-N
和-c
而不是-n
。但是我得到了相同的xml文件。
如何以原始格式(word,excel,jpg等)获取文件。我想一直存储所有列内容,因为我不知道哪一行有哪个格式文件。
我怎样才能做到这一点?
答案 0 :(得分:1)
C:\Temp\xyz.fmt
)。SET NOCOUNT ON;
CREATE TABLE tt(the_file VARBINARY(MAX) NOT NULL);
GO
SET NOCOUNT ON;
DECLARE @bcp_cmd VARCHAR(8000);
SET @bcp_cmd='BCP '+QUOTENAME(DB_NAME())+'.dbo.tt format nul -T -N -f "C:\Temp\xyz.fmt" -S PCname\SQLMANAGEMENT,25222 -Utest -Ptest';
EXEC master.sys.xp_cmdshell @bcp_cmd;
DROP TABLE tt;
GO
-- This creates C:\Temp\xyz.fmt file with prefix=8... Change the 8 to 0 in it.
D:\testing6
。SET NOCOUNT ON;
DECLARE @bcp_cmd VARCHAR(8000);
SET @bcp_cmd='BCP "SELECT TOP 1 RelatedData_img FROM Reminderimage.dbo.Reminderimage" QUERYOUT "D:\testing6" -T -fC "C:\Temp\xyz.fmt" -S PCname\SQLMANAGEMENT,25222 -Utest -Ptest';
EXEC master..xp_cmdshell @bcp_cmd;
GO