0

Windows Server 2003 マシンで SQL Server 2005 を実行しています。

小さなテキスト ファイルを大きなファイルに蓄積する必要があります。

だから私は使う

exec xp_cmdshell @sql

ここで @sql=

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

ソース パスと宛先パスの両方が別のサーバー上にあります。

このプロセスが失敗することはめったになく、イベントまたは SQL Server ログに他に何も見つかりません。

xp_cmdshell の Surface Area Config も有効になっています。

助けてください.....

4

1 に答える 1

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