xp_cmdshell copy命令很少失败

时间:2011-02-21 12:15:08

标签: sql sql-server-2005 windows-server-2003 xp-cmdshell

我在Windows Server 2003计算机上运行SQL Server 2005。

我需要将小文本文件累积到更大的文本中。

所以我用

exec xp_cmdshell @sql

其中@sql =

'copy /b'+@sourcePath+@sourceFile+' '+@destinationPath+@NewFileName

源路径和目标路径都位于单独的服务器上。

很少此过程失败,我在事件或SQL Server日志中找不到任何其他内容。

xp_cmdshell的Surface Area Config也已启用。

请帮助.....

1 个答案:

答案 0 :(得分:0)

我刚刚在我的sql server 2005上测试了它,EXEC dbo.xp_cmdshell总是以表格的形式返回输出(即使是在伪命令的情况下)。对于C#,如果您使用ExecuteNonQuery调用此代码,请使用ExecuteReader调用它并读取输出。或者,您可以将输出转储到表格中,以便稍后在闲暇时查看。创建一个这样的表:

CREATE TABLE [dbo].[xp_cmdShellOutput](
    [errorMsg] [nvarchar](max) NULL
)

然后使用此代码:

DECLARE @sql AS VARCHAR(600)

SELECT  @sql = '<your command>'

INSERT  dbo.xp_cmdShellOutput(errorMsg)
EXEC dbo.xp_cmdshell @sql