热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

急,急,急Sqlserver2008作业开始执行有问题?

如题,Sqlserver2008的作业开始执行时报错因为该作业没有作业步骤。我明明设置了作业步骤了。不懂,哪位大神能够解决下?
如题,Sqlserver2008的作业开始执行时报错

#5


p1--创建存储过程,在数据库执行就不需要再执行

在JOB里去掉
贴的图2,把命令文本框 用#2语句COPY就行

再设置执行计划的周期

#6


引用 4 楼 uutt001 的回复:
Quote: 引用 2 楼 roy_88 的回复:

DECLARE @Sqlcmd NVARCHAR(max)
SET @Sqlcmd='EXEC master.sys.xp_cmdshell ''bcp "EXEC 数据库.dbo.p1" queryout  E:\'+ datepart(ms,getdate())+'.xml  -c -q -T'''
EXEC(@Sqlcmd)

这一段放在JOB里就行了

存储过程在数据库执行过就行了

作业的报错

#7


@command=N'DECLARE @Sqlcmd NVARCHAR(max)
SET @Sqlcmd=''EXEC master.sys.xp_cmdshell ''''bcp "EXEC 数据库.dbo.p1" queryout  D:\''+CONVERT(VARCHAR(10),GETDATE(),120)+''.xml  -c -q -T -S"实例名" ''''''
EXEC(@Sqlcmd)'

--这一段在下面SQL中自己改,执行完自己把JOB的执行周期设置一下
USE [msdb]
GO

/****** Object:  Job [导出XML文件]    Script Date: 2016/8/11 17:08:42 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:  JobCategory [[Uncategorized (Local)]]    Script Date: 2016/8/11 17:08:42 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'导出XML文件', 
@enabled=1, 
@notify_level_eventlog=0, 
@notify_level_email=0, 
@notify_level_netsend=0, 
@notify_level_page=0, 
@delete_level=0, 
@description=N'无描述。', 
@category_name=N'[Uncategorized (Local)]', 
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:  Step [Step1]    Script Date: 2016/8/11 17:08:42 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Step1', 
@step_id=1, 
@cmdexec_success_code=0, 
@on_success_action=1, 
@on_success_step_id=0, 
@on_fail_action=2, 
@on_fail_step_id=0, 
@retry_attempts=0, 
@retry_interval=0, 
@os_run_priority=0, @subsystem=N'TSQL', 
@command=N'DECLARE @Sqlcmd NVARCHAR(max)
SET @Sqlcmd=''EXEC master.sys.xp_cmdshell ''''bcp "EXEC 数据库.dbo.p1" queryout  D:\''+CONVERT(VARCHAR(10),GETDATE(),120)+''.xml  -c -q -T -S"实例名" ''''''
EXEC(@Sqlcmd)', 
@database_name=N'master', 
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

#8


引用 5 楼 roy_88 的回复:
p1--创建存储过程,在数据库执行就不需要再执行

在JOB里去掉
贴的图2,把命令文本框 用#2语句COPY就行

再设置执行计划的周期

按照你说的改了 

还是执行失败

#9


教会你太难了,讲了半天,你还是没改

#10


引用 8 楼 uutt001 的回复:
Quote: 引用 5 楼 roy_88 的回复:

p1--创建存储过程,在数据库执行就不需要再执行

在JOB里去掉
贴的图2,把命令文本框 用#2语句COPY就行

再设置执行计划的周期

按照你说的改了 

还是执行失败

图二贴错了 

#11


直接用我上面的语句执行

会生成一个JOB名“导出XML文件”
要命令行
参照要#2命令格式

没有这一段 Create procedure p1--

只有declare ...这一段

执行完,看我提供的命令格式

#12


把计划历史 的"+"点开,看出错信息

执行完报错,是不是提示拒绝访问文件夹路径。。。
这类错误通常都是权限引起的
处理方法:
看一下SQL 代理服务 启用账号设置为本地管理员再试

#13


引用 11 楼 roy_88 的回复:
直接用我上面的语句执行

会生成一个JOB名“导出XML文件”
要命令行
参照要#2命令格式

没有这一段 Create procedure p1--

只有declare ...这一段

执行完,看我提供的命令格式

服 服 服 搞定了 真的厉害 哈哈 我是菜鸟 本来不是专门搞这个的 哈哈 谢谢啊 分拿好

#14


引用 12 楼 roy_88 的回复:
把计划历史 的"+"点开,看出错信息

执行完报错,是不是提示拒绝访问文件夹路径。。。
这类错误通常都是权限引起的
处理方法:
看一下SQL 代理服务 启用账号设置为本地管理员再试

版主 昨天运行可以 今天为什么上面显示执行成功,但是我在文件夹里并没有找到自动生成的文件

#15


看看执行JOB历史信息,执行时间 是否显示昨天

提问发贴,别在已结贴历史贴反复问,没人关注

推荐阅读
author-avatar
男人邦121121121
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有