以编程方式创建 SQL 作业

发布于 2024-10-28 13:17:20 字数 175 浏览 2 评论 0原文

我使用 SQL Server 2008 和 .NET 3.5 Framework。

在我的程序中,数据库上的存储过程根据用户输入进行更改。

用户可以确定他的任务的日期。

因此,我想以一种由程序创建用于更改存储过程的 SQL 作业的方式来编写程序。

如何以编程方式创建作业?

I use SQL Server 2008 and .NET 3.5 Framework.

In my program, the stored procedures on database are altered according to the user inputs.

The user can determine dates for his task.

So, I want to write the program in a way that SQL Job for altering stored procs is created by program.

How can I create the job programmatically?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋凉 2024-11-04 13:17:20

您可以通过两种方式以编程方式完成此操作:

1.
如果您只需要更改程序:

// written from the head
...
using System.Data.SqlClient;
using Smo = Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;

string strConnectionString = ".......";
string strAlterProcCommandText = "ALTER PROC dbo.blablabla (..) AS .......\r\nGO";

using (var conn = new SqlConnection(strConnectionString))
{
  conn.Open();
  var server = new Smo.Server(new ServerConnection(conn));
  var result = server.ConnectionContext.ExecuteNonQuery(strAlterProcCommandText);
  Console.WriteLine("Result: " + result);
}

2.
或者,如果您想使用 SQL 作业执行此操作,则可能必须使用上面的示例,但不是 strAlterProcCommandText = "ALTER PROC..." 执行将添加 SQL 作业的命令。通常我以这种方式生成 sqljob 查询:

  1. 打开 SQL Server Management Studio
  2. 在某个服务器的“对象资源管理器”窗口中,我转到:SQL Server 代理 » 作业 » 鼠标右键单击 » 新作业...
  3. 然后创建一个看起来像我想要执行的简单作业,为创建的作业命名
  4. 右键单击添加的作业,然后在上下文菜单中按照以下方式操作: 将作业脚本编写为 » CREATE To » New Query编辑器窗口
  5. 复制生成的脚本,根据需要对其进行参数化,然后放入strAlterProcCommandText

希望你明白我的想法。

You can do it programmatically in two ways:

1.
If you need just to alter a procedure:

// written from the head
...
using System.Data.SqlClient;
using Smo = Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;

string strConnectionString = ".......";
string strAlterProcCommandText = "ALTER PROC dbo.blablabla (..) AS .......\r\nGO";

using (var conn = new SqlConnection(strConnectionString))
{
  conn.Open();
  var server = new Smo.Server(new ServerConnection(conn));
  var result = server.ConnectionContext.ExecuteNonQuery(strAlterProcCommandText);
  Console.WriteLine("Result: " + result);
}

2.
Or if you want to do this with SQL Job, you may have to use the example above, but instead of strAlterProcCommandText = "ALTER PROC..." execute a command that will add a SQL Job. Usually I generate a sqljob query in this way:

  1. Open SQL Server Management Studio
  2. In "Object Explorer" window of some server I go to: SQL Server Agent » Jobs » Mouse-right-click » New Job...
  3. Then create a simple job that will look like I want to be executed, give the name to the created job
  4. Right click on added job and follow this way in the context menu: Script Job as » CREATE To » New Query Editor Window
  5. Copy the generated script, make it parameterized as you need, and then put to strAlterProcCommandText.

Hope you got my idea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文