0

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

我需要将小文本文件累积成一个更大的文件。

所以我用

exec xp_cmdshell @sql

其中@sql=

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

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

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

xp_cmdshell 的表面积配置也已启用。

请帮忙.....

4

1 回答 1

0

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

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
于 2011-02-21T12:32:44.760 回答