1

SQL Server プロシージャを使用してバッチ ファイルを開いています....

このために、メモ帳を開く例を取り上げました。そして、次のコードで開くことができます:

start "c:\windows\system32" notepad.exe
--- saved as : note.bat

次の手順で開こうとしました:

ALTER procedure [dbo].[executebat]
as
begin
   EXEC master.dbo.xp_CMDShell 'D:\ducont\note.bat'
end

xp_cmdshellまた、次のコードでオプションを有効にしました::

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

しかし、手順を実行しようとすると、継続的に表示されます

" Query Executing..."

そして出力なし!!

私がどこかで間違っていたら、私を導いてください。

4

1 に答える 1

0

簡単な答え。xp_cmdshell を実行すると、shell要求された作業を実行するために が作成されます。あなたのbatファイルはそのシェル内で実行されており、再びシェル内でメモ帳を開きます。あなたはそれを見ることができなくなります。入力を期待しているため(そして何も取得できないため)、「クエリの実行中...」で立ち往生しています。

おそらくCLRを使用する以外に、あなたが求めていることを行う良い方法は本当にありません。残念ながら、私はそれについて特定の方法または別の方法で言うのに十分な知識がありません. SQL 2012 または 2014 にはもっと簡単な方法があるかもしれませんが、まだ見ていません。

于 2013-06-18T12:54:18.797 に答える