Создание задания SQL программно - PullRequest
1 голос
/ 31 марта 2011

Я использую SQL Server 2008 и .NET 3.5 Framework.

В моей программе хранимые процедуры в базе данных изменяются в соответствии с пользовательскими данными.

Пользователь может определять даты для своегоtask.

Итак, я хочу написать программу так, чтобы программа SQL для задания сохраненных процедур создавалась программой.

Как создать программу программно?

1 Ответ

4 голосов
/ 31 марта 2011

Вы можете сделать это программно двумя способами:

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» в новом окне редактора запросов
  5. Скопируйте созданный сценарий, настройте его параметры так, как вам нужно, изатем задайте strAlterProcCommandText.

Надеюсь, вы поняли мою идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...