SqlServerAgent 服务开机自动启动,然后执行EXEC master.dbo.xp_servicecontrol N'START',N'SQLSERVERAGENT' 出现StartService() 返回错误 1056,“服务的范例已在运行中。”
请教,应如何根据SqlServerAgent 服务当前状态再执行启动服务语句,就是先查询SqlServerAgent 服务的当前状态(EXEC master.dbo.xp_servicecontrol N'QUERYSTATE',N'SQLSERVERAGENT'),如为Running,就不执行启动服务语句,否则执行启动服务语句。谢谢!!
请教,应如何根据SqlServerAgent 服务当前状态再执行启动服务语句,就是先查询SqlServerAgent 服务的当前状态(EXEC master.dbo.xp_servicecontrol N'QUERYSTATE',N'SQLSERVERAGENT'),如为Running,就不执行启动服务语句,否则执行启动服务语句。谢谢!!
INSERT @temp([state])
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE',N'SQLSERVERAGENT'IF(SELECT TOP(1) [state] FROM @temp) <> 'Running.' --Running./Stopped.
BEGIN
EXEC master.dbo.xp_servicecontrol N'START',N'SQLSERVERAGENT'
END
无法在向表插入变量时将 EXECUTE 用作源。
服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: '(' 附近有语法错误。
运行一楼代码,出现上面错误,继续求解!
IF object_id('tempdb..#temp', 'u') IS NOT NULL DROP TABLE #temp
CREATE TABLE #temp ([state] NVARCHAR(255))
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
INSERT INTO #temp([state])
EXEC master.dbo.xp_servicecontrol N''QUERYSTATE'',N''SQLSERVERAGENT''
'
EXEC (@sql)
IF(SELECT TOP(1) [state] FROM #temp) <> 'Running.' --Running./Stopped.
BEGIN
EXEC master.dbo.xp_servicecontrol N'START',N'SQLSERVERAGENT'
END
第 3 行: 'MAX' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,行 8
必须声明变量 '@sql'。
服务器: 消息 137,级别 15,状态 1,行 8
必须声明变量 '@sql'。
服务器: 消息 170,级别 15,状态 1,行 9
第 9 行: '(' 附近有语法错误。
新代码错误好象更多,我用的是SQL2000,继续求解!
CREATE TABLE #temp ([state] VARCHAR(255))
DECLARE @sql VARCHAR(1000)
SET @sql = '
INSERT INTO #temp([state])
EXEC master.dbo.xp_servicecontrol N''QUERYSTATE'',N''SQLSERVERAGENT''
'
EXEC (@sql)
IF(SELECT TOP(1) [state] FROM #temp) <> 'Running.' --Running./Stopped.
BEGIN
EXEC master.dbo.xp_servicecontrol N'START',N'SQLSERVERAGENT'
END