以编程方式创建 SQL Server 代理作业

2023-12-12

我想以编程方式创建 SQL Server 代理作业。我正在使用以下代码,运行时不会抛出任何错误,但当我检查 SQL Server 代理时,我没有看到任何作业。

所以问题 1:这是创造就业机会的正确方式吗?msdb from etgv125p (my database)数据库?

当我使用connectionString with Initial Catalog=msdb,我收到错误

对象“CreateSQLAgentjobs”、数据库“msdb”、架构“dbo”的 EXECUTE 权限被拒绝

问题2:我需要具备什么类型的凭证?我已经是管理员了。

Code:

static void Main(string[] args)
{
    string connetionString = "Data Source=SERVER;Initial Catalog=etgv125p;User ID=USER;Password=PASSWORD;Application Name=LOCAL";
    //string connetionString = "Data Source=SERVER;Initial Catalog=msdb;User ID=USER;Password=PASSWORD;Application Name=LOCAL";

    SqlConnection cnn = new SqlConnection(connetionString);
    SqlCommand cmd = new SqlCommand();

    string job = "Test_Job";
    string command = "Test_StoredProc";
    string serverName = "SERVERNAME";
    string startDate = DateTime.Now.ToShortDateString();
    string startTime = DateTime.Now.TimeOfDay.ToString();

    try
    {
        cmd.CommandText = "CreateSQLAgentjobs";
        cmd.Parameters.AddWithValue("@job", job);
        cmd.Parameters.AddWithValue("@mycommand", command);
        cmd.Parameters.AddWithValue("@servername", serverName);
        cmd.Parameters.AddWithValue("@startdate", startDate);
        cmd.Parameters.AddWithValue("@starttime", startTime);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = cnn;

        cnn.Open();
        cmd.ExecuteNonQuery();   // Error when using msdb connection string.
        cnn.Close();
    }
    catch (Exception ex)
    {
        // ignored
    }
}

存储过程:

ALTER PROCEDURE CreateSQLAgentjobs 
@job NVARCHAR(128),
@mycommand NVARCHAR(max), 
@servername NVARCHAR(28),
@startdate NVARCHAR(8),
@starttime NVARCHAR(8)
AS
BEGIN TRY
    BEGIN TRAN

    GRANT EXEC on CreateSQLAgentjobs to PUBLIC
    --1. Add a job
    EXEC msdb.dbo.sp_add_job
        @job_name = @job

    --2. Add a job step named process step. This step runs the stored procedure
    EXEC msdb.dbo.sp_add_jobstep
        @job_name = @job,
        @step_name = N'process step',
        @subsystem = N'TSQL',
        @command = @mycommand

    --3. Schedule the job at a specified date and time
    EXEC msdb.dbo.sp_add_jobschedule @job_name = @job,
        @name = 'MySchedule',
        @freq_type=1,
        @active_start_date = @startdate,
        @active_start_time = @starttime

    --4. Add the job to the SQL Server 
    EXEC msdb.dbo.sp_add_jobserver
        @job_name =  @job,
        @server_name = @servername
    COMMIT TRAN
END TRY
BEGIN CATCH
    SELECT ERROR_Message(), ERROR_Line();
    ROLLBACK TRAN
END CATCH

对于您看到的错误“执行权限被拒绝...”,请打开 SSMS 并在查询选项卡上执行以下代码:

GRANT EXEC on CreateSQLAgentjobs to PUBLIC

并将其从过程中删除

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式创建 SQL Server 代理作业 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 从 Outlook 电子邮件中提取嵌入图像

    我正在使用 Microsoft 的 CDO 协作数据对象 以编程方式从 Outlook 邮箱读取邮件并保存嵌入的图像附件 我正在尝试使用 Win32 扩展从 Python 执行此操作 但使用 CDO 的任何语言的示例都会有所帮助 到目前为止
  • 我应该通过 const 引用传递 std::function 吗?

    假设我有一个函数需要一个std function void callFunction std function
  • 如何授权 django-rest-knox 登录路径而不出现 401 错误?

    我正在尝试在我的 django 应用程序上放置一个身份验证 api 以便我可以开始使用 Vue Node 前端 我已经读过诺克斯文档 但我似乎没有看到任何表明问题所在的内容 任何见解将不胜感激 我的怀疑如下 我在做什么 我正在关注this教
  • 为什么我对链表的 drop 的迭代实现仍然会导致堆栈溢出?

    我正在关注使用太多的链表学习 Rust用 Rust 编写我的第一个程序 我changed该计划 use std mem derive Debug pub enum List Nil More Box
  • C# 如何提取完整的xml节点集

  • 如何将javascript html dom文档存储到本地存储

    我有文档 组件树 m 我试图将其存储在 html5 的本地存储中 我尝试将其设置为本地存储 但是当我检索它时 这个m已经变成了 object Document 如何将文档存储到本地存储并将其作为文档本身检索 下面是我尝试过的代码 应用程序向
  • 水豚方法未定义

    我无法让水豚工作 我使用的是水豚2 0 0 我收到这个错误 Failure Error visit users sign in NoMethodError undefined method visit for
  • 使用 JavaScript 在文本字符串中插入隐藏字符

    如何使用 JavaScript 在文本字符串中使用隐藏字符 我读取并写回一个文本字符串 其中包含隐藏字符 因此重写的文本看起来与原始文本相同 尽管它包含隐藏字符 所以接下来当我阅读文本时 我可以知道该文本已被阅读 因为它包含隐藏字符 Eg
  • Yii 2. 在公共文件夹外上传文档

    我需要将文档上传到服务器 因为它是个人文档 所以他们希望将其上传到公共文件夹之外 我知道如何上传文件 if model gt load Yii app gt request gt post model gt document Uploade
  • 如何对流进行分区 (GroupBy) 并监视某些时间段内 Rx 中是否缺少元素?

    前几天我一直在尝试编写一个 Rx 查询来处理来自源的事件流并检查是否缺少某些 ID 缺席被定义为存在一系列时间窗口 例如 从 9 00 到 17 00 的所有日子 在此期间最多应该有 20 分钟没有 ID 出现在流中 更复杂的是 缺勤时间应
  • 谷歌眼镜(未安装)

    我是 Android Studio 和 google Glass 的新手 我正在尝试创建一个将使用 google glass 的已知项目 但我的问题是 当我必须检查 选择 glass 时 它已被禁用 并且我不知道如何解决此问题 请参见下图
  • Android XML 文件 java.lang.nullpointerexception

    我正在构建一个全新的 android 项目 这不是我的第一个 Android 应用程序 所以我更沮丧的是无法摆脱这个错误 我使用 XML 文件 该文件目前只有 3 个项目 并且 XML 选项卡中没有错误
  • 使用 graph api 私下发布到 Facebook 上的朋友墙

    我想从我的应用程序将提要发布到朋友墙上 并将其设置为私有 登录用户和朋友都可以查看 我想使用新的 Graph api 来做到这一点 我看到如果我在 feed 帖子中设置 to 参数 它将被发布到用户朋友墙上 I found a code h
  • Java Integer类中的getChars方法,为什么它使用按位运算而不是算术运算?

    所以我正在检查Integer的班级源代码 JDK 8 了解如何int转换为String 它似乎正在使用一个名为的包私有方法getChars 第 433 行 转换int to char array 虽然代码并不难理解 但是有多行代码使用了按位
  • Python .sort() 未按预期工作

    在一个安静的周六晚上解决一些难题 呜呼 不是 并且正在与 sort 作斗争 结果并不完全符合我的预期 该程序迭代 100 999 之间的每个组合 并检查该乘积是否为回文 如果是 请追加到列表中 我需要对列表进行排序 D 这是我的程序 lis
  • Scala:如何在超类中引用扩展类的类型?

    有没有办法定义类型T在父级中这样T将始终成为扩展类的实际类型 在本例中Child In Parent 我想强制执行 声明T始终是扩展类型 就好像我会写一样type T type of the extending class 在每个实际的扩展
  • 如何在表单之间交换数据[重复]

    这个问题在这里已经有答案了 可能的重复 在表单之间共享数据 我有 public partial class LoginForm Form private string somedata somedata public LoginForm I
  • pythonplotly-旋转辅助X轴标签

    假设我创建了一个像这样的情节图 x A A B B X Y X Y y 1 2 3 2 fig go Figure fig add bar x x y y fig show I get this I want to rotate the s
  • 如何以编程方式检查应用程序是否已安装?

    我正在开发一个 iPhone 应用程序 它将在企业中安装很少的第三方应用程序 我有有关捆绑包 ID 的信息 有没有办法使用某些系统 API 来检查应用程序是否已安装 目前 该应用程序将再次安装 覆盖当前安装 我需要以某种方式阻止这种情况 如
  • 以编程方式创建 SQL Server 代理作业

    我想以编程方式创建 SQL Server 代理作业 我正在使用以下代码 运行时不会抛出任何错误 但当我检查 SQL Server 代理时 我没有看到任何作业 所以问题 1 这是创造就业机会的正确方式吗 msdb from etgv125p