我使用简单的代码
declare @sql varchar(8000)
select @sql = 'bcp ExcelAnalysis.dbo.ClearDB out c:\csv\comm.txt -c -t, -T -S '+ @@servername
exec master..xp_cmdshell @sql
但是这段代码导出了我的所有表格,但我只需要一些字段和条件 像:
declare @sql varchar(8000)
select @sql = 'bcp
SELECT
,[vl]
,[data]
,[URL]
,[parse]
,[Strata]
,[Id]
FROM [ExcelAnalysis].[dbo].[ClearDB] where [data]> "01.05.2017" and NOT [vl] ="mag"and NOT [vl] ="Maxximo" out c:\csv\status.txt -c -t, -T -S '+ @@servername
exec master..xp_cmdshell @sql
但如果我使用任何字段,bcd会返回带有语法的消息。 怎么做对吗?
答案 0 :(得分:5)
第一部分:在数据库中创建一个视图,在第二部分创建一个语句以将结果导入CSV。让我知道您是否需要更多帮助
use [ExcelAnalysis].
go
;
create view [dbo].[vw_ClearDB] as
SELECT
[vl]
,[data]
,[URL]
,[parse]
,[Strata]
,[Id]
FROM [dbo].[ClearDB] where [data]> "01.05.2017" and NOT [vl] ='magand'
NOT [vl] ='Maxximo'
GO
;
declare @sql varchar(8000)
select @sql = 'bcp ExcelAnalysis.dbo.vw_ClearDB out c:\csv\comm.txt -c -t, -T -S '+ @@servername
exec master..xp_cmdshell @sql
答案 1 :(得分:2)
Bcp queryout 选项。
语法将是:
SET @sql = 'bcp "SELECT [vl]
,[data]
,[URL]
,[parse]
,[Strata]
,[Id]
FROM [dbo].[ClearDB]
WHERE [data] > ''01.05.2017''
AND NOT [vl] =''mag''
AND NOT [vl] =''Maxximo''"
queryout c:\csv\comm.txt
-c -t, -T -S '+ @@servername + '\' + @@servicename