mkader से codeproject पर:
Declare @sql varchar(500)
SET @sql = 'bcp DBName.dbo.tblTableName format nul -T -n -f C:\testblob.fmt -S ' + @@SERVERNAME
select @sql
EXEC master.dbo.xp_CmdShell @sql
मेरे प्रारूप फ़ाइल इस तरह देखा:
10.0
12
1 SQLINT 0 4 "" 1 my_tablecol_id ""
2 SQLINT 1 4 "" 2 my_tablecol0 ""
3 SQLCHAR 2 256 "" 3 my_tablecol1 SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 2 256 "" 4 my_tablecol2 SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 2 256 "" 5 my_tablecol3 SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 2 2048 "" 6 my_tablecol4 SQL_Latin1_General_CP1_CI_AS
7 SQLIMAGE 4 0 "" 7 my_imagecol ""
8 SQLCHAR 2 2048 "" 8 my_tablecol6 SQL_Latin1_General_CP1_CI_AS
9 SQLINT 1 4 "" 9 my_tablecol7 ""
10 SQLINT 1 4 "" 10 my_tablecol8 ""
11 SQLINT 1 4 "" 11 my_tablecol9 ""
12 SQLBIT 1 1 "" 12 my_tablecol10 ""
मैं तो संपादित
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE;
GO
फिर एक प्रारूप फ़ाइल डंप प्रारूप फ़ाइल की तरह:
10.0
1
1 SQLIMAGE 0 0 "" 1 my_imagecol ""
और फिर SSMS में इस एसक्यूएल भाग गया:
Declare @mynum int
Declare @sql varchar(500)
SET @mynum = 49 -- something meaningful only to me
SET @sql = 'BCP "SELECT my_imagecol FROM DBName.dbo.tblTableName where [email protected]" QUERYOUT C:\myfilename.docx -T -fC:\testblob.fmt -S ' + @@SERVERNAME
EXEC master.dbo.xp_CmdShell @sql
यह वास्तव में अच्छी तरह से काम, छवि स्तंभ में डेटा के किसी भी प्रकार काम करता है।
संदेश 8152, स्तर 16, राज्य 10, रेखा 7 स्ट्रिंग या बाइनरी डेटा काटा जाएगा। –