gpt4 book ai didi

sql - 如何在不使用 GUI 的情况下创建 SQL Server 代理?

转载 作者:行者123 更新时间:2023-12-04 18:25:00 25 4
gpt4 key购买 nike

我正在使用 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 时的步骤。

此外,一些关于如何操纵代理的时间安排的引用也会有所帮助。当我测试它时,我想将它设置为每十五分钟左右运行一次。

编辑
EXEC dbo.sp_add_job @job_name=N'test' 返回错误
找不到存储过程“dbo.sp_add_job”。

最佳答案

如果您需要在 SQL Server Agent 中创建 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 本身,您需要在此处查看语法:

sp_add_job

sp_add_jobstep

sp_add_jobschedule

这有点棘手,但这应该能让你继续前进。

关于sql - 如何在不使用 GUI 的情况下创建 SQL Server 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1330993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com