我使用的是Angel LMS,它建立在SQL Server平台上。我相信它的2005年,但不是100%肯定。
无论如何,也许我的伪代码会揭示这个答案。单引号也必须用于字符串,连接字符是+。
我需要每天运行2-5次(频率尚未确定,但你明白了)。这是事务块/伪代码:
BEGIN TRANSACTION
BEGIN TRY
<select statement>
<update statement>
<delete statement>
<insert statement>
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
DECLARE @Msg NVARCHAR(MAX)
SELECT @Msg=ERROR_MESSAGE()
RAISERROR('Error Occured: %s', 20, 101,@msg) WITH LOG
END CATCH
我唯一访问数据库的是一个运行sql命令的文本框。我可以创建和删除表,运行事务块,显然选择/插入/更新/删除。我找不到任何创建代理的命令,但只能找到使用企业管理器或任何GUI的步骤。
此外,关于如何操纵代理的时间安排的一些参考将有所帮助。当我测试它时,我想将它设置为每十五分钟左右运行一次。
<小时/> 修改
答案 0 :(得分:10)
如果需要在SQL Server代理中创建SQL作业(假设您拥有权限),则必须创建以下内容:
1)工作本身 2)作业中的一个步骤来运行SQL代码 3)何时运行它的时间表。
执行此操作需要以下存储过程(工作示例):
BEGIN TRY
BEGIN TRAN
DECLARE @jobId BINARY(16)
--Add job
EXEC msdb.dbo.sp_add_job @job_name=N'Job Name', @job_id = @jobId OUTPUT
--Add step to job
EXEC msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Do SQL Stuff',
@step_id=1,
@subsystem=N'TSQL',
@command=N'SELECT ''Hello, I am a query'';',
@database_name=N'DB_Name',
@flags=0
--Add schedule to job
EXEC msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Mon-Fri 6:00AM to 7:00PM, every hour',
@freq_type=8,
@freq_interval=62,
@freq_subday_type=8,
@freq_subday_interval=1,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20090403,
@active_end_date=99991231,
@active_start_time=60000,
@active_end_time=190000
COMMIT TRAN
END TRY
BEGIN CATCH
SELECT ERROR_Message(), ERROR_Line();
ROLLBACK TRAN
END CATCH
至于sprocs本身,你需要在这里查看语法:
这有点棘手,但这应该让你去。
答案 1 :(得分:1)