2017-08-16 111 views
0

我从视图中选择数据数据导出到Excel中使用BCP和commandShell

我正在错误

usage: bcp [[db_name.]owner.]table_name[:slice_num] [partition pname] {in | out} [filename] 
[-m maxerrors] [-f formatfile] [-e errfile] [-d discardfileprefix] 
[-F firstrow] [-L lastrow] [-b batchsize] 
[-n] [-c] [-t field_terminator] [-r row_terminator] 
[-U username] [-P password] [-I interfaces_file] [-S server] 
[-a display_charset] [-z language] [-v] 
[-i input_file] [-o output_file] 
[-A packet size] [-J client character set] 
[-T text or image size] [-E] [-g id_start_value] [-N] [-W] [-X] 
[-M LabelName LabelValue] [-labeled] 
[-K keytab_file] [-R remote_server_principal] [-C] 
[-V [security_options]] [-Z security_mechanism] [-Q] [-Y] 
[-y sybase directory] [-x trusted.txt_file] 
[--clienterr errfile] [--maxconn maximum_connections] 
[--show-fi] [--hide-vcc] 
[--colpasswd [[[db_name.[owner].]table_name.]column_name [password]]] 
[--keypasswd [[db_name.[owner].]key_name [password]]] 
[--initstring ASE initialization string] [--quoted-fname] 

NULL

declare @sql varchar(8000) 

Select @sql= 'bcp "Select * from eBenefitSync_GUI_PH.dbo.Disp_View" out D:\Contacts.txt -c -T ' +'-s ' [email protected]@servername+'\'[email protected]@servicename 
--EXECUTE master.dbo.xp_cmdshell @SQL 
+0

请打印'@ sql'并发布 –

+0

您是否尝试过使用''-s'+ @@ SERVERNAME'? –

+0

是的,它没有使用它,但使用IP,不知道为什么(超时错误),我也使用了servername \ instancename以及 – Ashu

回答

0

用法告诉你,它需要一个数据库.table语法,而不是SQL查询。尝试从取出SELECT *:

declare @sql varchar(8000) 

Select @sql= 'bcp "eBenefitSync_GUI_PH.dbo.Disp_View" out D:\Contacts.txt -c -T ' +'-s ' [email protected]@servername+'\'[email protected]@servicename 
--EXECUTE master.dbo.xp_cmdshell @SQL 
+0

我有一个复杂的查询,我在多个表上使用连接。你可以建议我怎么办? – Ashu

+0

这不是你使用你的观点吗? (我假设Disp_view是一个视图) – Simon