1

我有一个用于将数据从 SQL Server 导出到本地硬盘的格式文件。我必须通过 SQL 命令在远程机器上创建这个格式文件。

Server srv = new Server(conn);    
server.ConnectionContext.ExecuteNonQuery("xp_cmdshell 'ECHO 10.0 1 1       SQLBINARY           8       0       \"\"   1     blob                 \"\">> " + destinationPathFormat + "'");

没有换行符转义格式文件无效并且导出数据不起作用。字符串必须在此处转义: 10.0 [ESCPAPE] 1 [ESCPAPE] 1

提前致谢。

4

1 回答 1

1

由于echo附加了换行符,您可以发出多个回显命令。

server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line1 >> " + destinationPathFormat + "'");
server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line2 >> " + destinationPathFormat + "'");
server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line3 >> " + destinationPathFormat + "'");

您已经在使用>>,它附加到一个文件,而不是>,它创建一个文件。

于 2014-03-21T11:40:19.627 回答