【发布时间】:2017-07-22 02:49:52
【问题描述】:
全部,
这里我有一个简单的查询,可以在任何人的机器上运行 SQL Server,其中创建了一个简单的表,然后我尝试通过 BCP 将其内容导出到 XML 文件。您所要做的就是将@DatabaseName、@filename、@query 替换为与您的机器相关的值。
当我运行查询 1 时,错误消息是
SQLState = S1000,NativeError = 0 错误 = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主机数据文件。
当我运行查询 2 或 3 时,错误消息是
bcp.exe:未知选项 A 用法:bcp.exe {dbtable |查询} {在 |出去 |查询 |格式}数据文件。
我从 SQL Server Management Studio 运行它。我真的需要解决这个问题,请帮忙。
DECLARE @cmd As VARCHAR(8000)
use CP
IF EXISTS(SELECT * FROM dbo.Dummy) DROP TABLE dbo.Dummy
Declare @DatabaseName VARCHAR(200)
Declare @filename VARCHAR(200)
Declare @query As varchar(max)
set @DatabaseName = 'ALSCG-JPATHIL\SQLEXPRESS'
set @filename = 'C:\Users\jpathil\Desktop\sample.xml'
set @query = 'SELECT * FROM [CP].[dbo].[Dummy]'
CREATE TABLE Dummy (BCP_Sucks VARCHAR(200),);
INSERT INTO Dummy VALUES ('Jean');
INSERT INTO Dummy VALUES ('Derrick')
Declare @teststring VARCHAR(2000)
-- Query 1
--set @teststring = 'bcp.exe ' + '"' + @query + '" ' + 'queryout' + ' "' + @filename + '" ' + '-c -T -x -S ' + @DatabaseName
--Query 2
--set @teststring = 'bcp.exe ' + '"' + @query + '" ' + 'queryout' + ' "' + @filename + '" ' + '-c -T -x' + @DatabaseName
--Query 3
set @teststring = 'bcp.exe ' + '"' + @query + '" ' + 'queryout' + ' "' + @filename + '" ' + '-c -x' + @DatabaseName
SET @cmd = @teststring
EXEC xp_cmdshell @cmd;
【问题讨论】:
-
这里的目标是在 SSMS 中运行脚本时生成一个简单的 XML 文件导入我的桌面
-
有没有试过加个
PRINT @teststring看看命令格式是否正确?
标签: sql sql-server xml compiler-errors bcp