【发布时间】:2018-11-11 02:02:40
【问题描述】:
我刚开始学习使用 SQL Server 的 BCP,我正在使用它来查询 SQL Server 数据库并创建一个 .csv 文件。我可以使用以下命令毫无问题地创建文件:
bcp "SELECT 'ID' FROM [database].[dbo].[table]" queryout C:\DeskTop\test.csv -c -t, -T -S
但是,我需要运行更高级的查询,但遇到了问题。似乎查询正在被解析并且部分正在尝试执行。我收到错误说找不到 FROM 命令。这是我试图在 BCP 命令中运行的查询:
SELECT REPLICATE(0, 10-LEN(t.[CustId])) + CAST(t.[CustId] as
nvarchar) as CustId
,(CASE WHEN t.[DisclId] = 'ECONSENT' THEN 'eConsent'
WHEN t.[DisclId] = 'OLACC' THEN 'OLACC' END) as DisclId
,CONVERT(DATE,t.[AgreeDateTime],23) AS AgreeDateTime
,t.[Vers]
,'0' as ACNT_ID
,'Accepted' as Status_Desc
,'0001-01-01' as Last_Delay_Date
,'0' as Delay_Count
FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY CustId, DisclId
ORDER BY AgreeDateTime DESC) AS RowNumber
FROM [DATABASE].[dbo].[TABLE]) AS t
WHERE t.RowNumber = 1
ORDER BY CustId
使用 BCP 命令运行此查询的正确语法是什么?
提前谢谢你
【问题讨论】:
-
您的最终
BCP查询看起来如何。希望您在查询中嵌入的任何内容都使用了单引号。 -
那是我没有做的一件事。我会试试看。
-
我发现了我的问题。我将查询包裹在我需要的引号中,但是通过键入它并逐个测试它(意味着我一次将项目添加到 select 语句中,然后运行 BCP 命令)我能够运行它没有问题。在我在查询中复制和粘贴大部分内容之前。
标签: sql-server bcp