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 回答