-- 添加作业
declare @jobid uniqueidentifier
exec msdb.dbo.sp_add_job
@job_name = N'临时作业',
@job_id = @jobid output
-- 添加作业步骤
declare @db_name sysname
set @db_name = db_name()
exec msdb.dbo.sp_add_jobstep
@job_id = @jobid,
@step_name = N'步骤名称',
@subsystem = 'TSQL',
@command = 'print getdate()',
@database_name = @db_name
-- 添加计划
exec msdb.dbo.sp_add_jobschedule
@job_id = @jobid,
@name = N'设置调度',
@freq_type = 1, -- 只调度一次
@freq_subday_type = 0x1, -- 在指定时间调度
@active_start_date = 20140915, -- 日期 ↓ 时间
@active_start_time = 084444 -- 作业开始执行时间
--添加目标服务器
declare @servername sysname
set @servername = cast(serverproperty(N'servername') as nvarchar)
exec msdb.dbo.sp_add_jobserver
@job_id = @jodid, -- 设置作业Id
@server_name = @servername
------------------------------- 代码结束 -------------------------------
-------------------------------- 错误提示 -------------------------------
消息 137,级别 15,状态 2,第 31 行
必须声明标量变量 "@jodid"。
----------------------- 说明 ----------------------
是在SQL SERVER 2005里使用SQL语句创建作业并进行调度.
之前也看了一些例子,照着例子写也都能运行.不过例子的参数太多了,我就仅仅写了一些只需要用到的参数.
然后就总报:@jobid未定义.
我隔段测试,只有在最后一步,指定 jobserver 的时候,才会报这个错误,其他段 @jobid都能正常运行.
这是啥原因呢?...
declare @jobid uniqueidentifier
你定义的是@jobid,而不是@jodid
大神!给跪了,果然火眼金睛...
真是当局者迷,旁观者清.都纠结我快2小时了..原来是字母变量拼错了...