为什么我的 bcp 查询在 sql 服务器中不起作用?

Why my bcp query out not work in sql server?

我是 sql server 的新手,想将 select 查询保存到 csv 文件中,为此目的使用 bcp query out 编写此查询:

declare @cmd as nchar(50)
SET @cmd = 'bcp  select *from [behzad].[dbo].[behzad] queryout "d:\spt_values.dat" -U behbeh -P beh1368421 ' 
EXEC master..XP_CMDSHELL @cmd  


但我得到这个输出:

我该如何解决这个问题?谢谢。

因为您正在使用 queryout 您的来源必须是一个查询。

由于查询有空格,您必须引用它:

此外,您的 @cmd nchar(50) 太短,可能会截断您的命令。

试试这个:

declare @cmd as nchar(500)
SET @cmd = 'bcp  "select * from [behzad].[dbo].[behzad]" queryout "d:\spt_values.dat" -U behbeh -P beh1368421 ' 
EXEC master..XP_CMDSHELL @cmd  

使用 SELECT * FROM ... 查询实际上更容易,使用 3 部分限定的 table 名称和 out 而不是 SELECT ...queryout...