我正在使用SQL Server 2008.我很困惑SQL Server代理程序作业运行时将使用哪个帐户.我的困惑是,
我有上述混淆,因为可能会使用3个不同的帐户系统,我担心的是每个步骤将运行的实际帐户是什么,我想避免任何许可问题(即我想确保帐户有足够的权限.).有什么意见或建议吗?感谢任何人都可以澄清3个级别的帐户,这让我很困惑.
乔治,提前谢谢
我有一个时间表,每天做一次,每两个小时一次.我想为这个时间表设定一个结束日期,但我想知道它是包容性的还是排他性的.换句话说,如果我在3月26日设定结束日期,今天将是它运行的最后一天,或明天(今天是25月3日).
我在尝试读取SQL作业时遇到以下错误.
对象'sysjobs',数据库'msdb',架构'dbo'上的SELECT权限被拒绝
我怎样才能解决这个问题?
Visual Studio 2010是否支持在数据库项目中管理SQL Server作业?
我正在使用Visual Studio 2010中的数据库项目.我想database scheduler在我的数据库项目中管理我的工作.似乎我无法在数据库项目中创建任何服务器对象.
sql-server-agent database-project visual-studio-2010 sql-server-2008
我sp_start_job用来开始工作.
job(test2)只有一步:
select getdate()
waitfor delay '00:00:10'
Run Code Online (Sandbox Code Playgroud)
该TRY/CATCH代码:
begin try
EXEC msdb.dbo.sp_start_job @job_name = 'test2'
end try
begin catch
print 'error'
end catch
Run Code Online (Sandbox Code Playgroud)
首次运行代码:
Job'test2'成功启动.
第二次运行代码(10秒内):
消息22022,级别16,状态1,行0
SQLServerAgent错误:请求运行作业test2(来自用户sa)被拒绝,因为作业已经从用户sa的请求运行.
为什么TRY/CATCH在这种情况下不起作用?
更新:我应该首先添加我正在使用链接服务器(sql server 2000)的sql server 2005.我试图在sql server 2005服务器上编写一个proc来查看所有链接服务器上的作业.如果作业未运行,请运行它.最初,我使用try-catch并希望在运行已经运行的作业时捕获任何错误但是失败了(这个线程).
我终于使用了以下代码:(它不会编译,你需要替换一些变量,只是给出一个想法)
CREATE TABLE [dbo].[#jobInfo](
[job_id] [uniqueidentifier] NULL,
[originating_server] [nvarchar](30) ,
[name] [nvarchar](128) ,
[enabled] [tinyint] NULL,
[description] [nvarchar](512) ,
[start_step_id] [int] NULL,
[category] [nvarchar](128) ,
[owner] [nvarchar](128) ,
[notify_level_eventlog] [int] NULL,
[notify_level_email] [int] NULL,
[notify_level_netsend] [int] …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个SQL Server代理程序作业,其中包含一些需要每周处理的步骤.其中一个是PowerShell脚本,它将抛出以下(未捕获的)自定义异常:
$endfile = Test-Path "C:\Temp\1_${loc}_${lastpayweek}.csv"
IF ($endfile -eq $true)
{
throw "target file already exists"
}
Run Code Online (Sandbox Code Playgroud)
现在,当发生这种情况时,我可以在服务器代理历史记录中看到抛出了异常,但仍然报告该步骤是成功的.如果没有失败,服务器代理将不会发送通知电子邮件让我知道失败.
我这样调用PowerShell脚本:
powershell C:\scripts\rename_timesheet_export.ps1 -loc 3
Run Code Online (Sandbox Code Playgroud)
为什么报道成功?
我正在尝试在运行 Windows Small Business Server 2011 Standard 和 SQL Server 2008 R2 RTM 的测试服务器上设置 SQL Server 代理。Sql Server Agent 节点不显示在 Sql Management Studio 中。
以下是我根据我阅读的论坛了解到的信息:
根据这些事实,有人有解决方案吗?
谢谢
我在负责删除旧执行日志的维护作业的 sql server 2017 代理作业中收到以下错误消息:
Date 5/23/2018 12:18:45 AM
Log Job History (SSIS Server Maintenance Job)
Step ID 1
Server KARABL3
Job Name SSIS Server Maintenance Job
Step Name SSIS Server Operation Records Maintenance
Duration 00:02:34
Sql Severity 16
Sql Message ID 16916
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 3
Message
Executed as user: ##MS_SSISServerCleanupJobLogin##. A cursor with the name 'execution_cursor' does not exist. [SQLSTATE 34000] (Error 16916). NOTE: The step was retried the requested number of …Run Code Online (Sandbox Code Playgroud) 如何使用SQL获取SQL Server代理中的最后一次运行作业详细信息,包括仅针对上次运行作业(而不是作业结果)的步骤详细信息,因为我想在应用程序中显示它
请帮助我坚持多年
这是我在下面使用的代码,这将为作业历史记录中的所有作业返回所有步骤,
但是,我只想查看上次运行作业的步骤
谢谢
USE msdb
Go
SELECT j.name JobName,h.step_name StepName,
CONVERT(CHAR(10), CAST(STR(h.run_date,8, 0) AS dateTIME), 111) RunDate,
STUFF(STUFF(RIGHT('000000' + CAST ( h.run_time AS VARCHAR(6 ) ) ,6),5,0,':'),3,0,':') RunTime,
h.run_duration StepDuration,
case h.run_status when 0 then 'Failed'
when 1 then 'Succeeded'
when 2 then 'Retry'
when 3 then 'Cancelled'
when 4 then 'In Progress'
end as ExecutionStatus,
h.message MessageGenerated
FROM sysjobhistory h
inner join sysjobs j
ON j.job_id = h.job_id
LEFT JOIN (
SELECT
[job_id]
, …Run Code Online (Sandbox Code Playgroud) 每次启动 Sql Server 作业时,都会出现以下错误。我正在使用 SQL Server 2016。没有人知道如何修复它吗?
特定于应用程序的权限设置不会向用户授予具有 CLSID {2DC39BD2-9CFF-405D-A2FE-D246C976278C} 和 APPID {DB336D8E-32E5-42B9-B14B-58AAA87SQLCEB06} 的 COM 服务器应用程序的本地激活权限给用户SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) 来自在应用程序容器中运行的地址 LocalHost (Using LRPC) Unavailable SID (Unavailable)。可以使用组件服务管理工具修改此安全权限。
sql-server-agent ×10
sql-server ×6
sql ×4
jobs ×1
permissions ×1
powershell ×1
scheduling ×1
sql-job ×1
ssis ×1
ssms ×1
try-catch ×1