1

私は外部exeファイルの実行に関する研究に固執しています。私がこれまでに見つけたのは、これを使用して実行できるということでした。

EXEC master..xp_cmdshell '"C:\New Folder\test.exe"'

また、トリガーを完了するには実行が完了するまで待機する必要があるため、これをトリガーで直接呼び出すことはできません。

したがって、このための推奨されるアプローチは、パフォーマンスの問題を発生させることなく、テーブルをポーリングし、そこから.exeファイルを呼び出すスケジュールされたジョブを用意することです。これまでのところ、私はそれを受け入れて取り組んでいます。

したがって、これを試す前に、実装する前に学習する必要のある各部分に取り組んでいます。データベースをマスターとして保持しながら、上記のコードをテストしています。私はさらにいくつか試しました。

EXEC master..xp_cmdshell '"C:\New Folder\r.rar"'

EXEC master..xp_cmdshell '"C:\New Folder\text.text"'

したがって、私はこのxp_cmdshellを通常のコマンドプロンプトと考えています。exeファイルのオープンとtetファイルとrarファイルのオープンが表示されることを期待していました。しかし、それは機能していません。

私のアプローチを伝えるために上記の詳細を示しました。以前の経験でより良いアプローチがある場合は、フィードバックをお願いします。前もって感謝します。

4

2 に答える 2

4

トリガーを試す

以下は、トリガーから .exe ファイルを実行するコードです。

CREATE TRIGGER trgAfterInsert on dbo.table_Demo
DECLARE @CMDSQL VARCHAR(1000)

exe ファイルのパスを設定し、必要に応じて引数ファイルを含めることができます。

SET @CMDSQL = 'cmd.exe /C "D:\Phoenix restart\612 League\code\PhoenixMallTest\bin\Release\PhoenixMallTest.Console.exe" App.ini'
Exec master..xp_cmdshell @CMDSQL
PRINT 'AFTER INSERT trigger fired.'

SQL Server が xp_cmdshell をブロックするか、xp_cmdshell を有効にするように指示する場合は、次のように実行できます。

Use Master
GO

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO
于 2016-11-18T10:13:09.000 に答える
1

どのような種類のエラーが発生しますか?

この問題は、SQL サーバーのセキュリティ構成の一部としてコンポーネントがオフになっているために発生する可能性があります。

システム管理者は、sp_configure を使用して「xp_cmdshell」の使用を有効にすることができます。「xp_cmdshell」を有効にする方法の詳細については、SQL Server Books Online の「Surface Area Configuration」を参照してください。

于 2013-01-31T05:35:25.657 に答える