2011-03-31 10 views
1

SQL Server 2008 및 .NET 3.5 Framework를 사용합니다.프로그래밍 방식으로 SQL 작업 만들기

내 프로그램에서는 데이터베이스의 저장 프로 시저가 사용자 입력에 따라 변경됩니다.

사용자는 자신의 작업에 대한 날짜를 결정할 수 있습니다.

그래서 저장된 procs를 변경하기위한 SQL Job이 프로그램에 의해 작성되는 방식으로 프로그램을 작성하고 싶습니다.

어떻게 프로그램 방식으로 작업을 만들 수 있습니까?

+0

바인드 변수를 사용하여이 작업을 수행하지 않으려는 이유가 있습니까? –

+0

저장된 procs 만 업데이트하려고합니까? 그렇다면 왜 일을해야합니까? – tobias86

+0

@ tobias86 더 좋은 방법이 있습니까? @ pm_2 bind 변수는 모르지만 지금은 검색하고 있습니다. –

답변

4

두 가지 방법으로 프로그래밍을 수행 할 수 있습니다

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 작업을 추가하는 명령을 실행하십시오. SQL Server 에이전트 » 채용 » »을 마우스 오른쪽 버튼으로 클릭 :

  1. SQL Server Management Studio를 열고
  2. 나는에 가서 일부 서버의 창 "개체 탐색기"에서 : 일반적으로 나는이 방식으로 sqljob 쿼리를 생성 새 작업 ...
  3. 가 그럼 난 실행하려는 모양을 간단한 작업을 생성, 생성 된 작업에 이름을
  4. 마우스 오른쪽 단추로 추가 작업을 클릭하고 상황에 맞는 메뉴에서이 방법을 따르 스크립트 직업이 » 인 경우 CREATE To » 새 쿼리 편집기 창
  5. 생성 된 스크립트를 복사하고 필요에 따라 매개 변수화 한 다음 strAlterProcCommandText에 넣습니다.

희망이 있습니다.

+0

특정 날짜에 변경이 발생합니다. 예를 들어, 오늘 proc에 코드를 추가하고 다음 달에 코드를 제거 할 것입니다. 그러나이 모든 날짜는 응용 프로그램의 UI 만 알고있는 사용자가 제공합니다. 따라서 작업을 응용 프로그램으로 작성해야하거나 Windows 서비스가 필수적입니까? –

+0

흠, 네가 필요로하는 바에 따라 달라질 것 같아. 어쨌든이 작업을하는 데는 여러 가지 방법이있을 것이라고 확신합니다. 예를 들어 SMO 네임 스페이스에서 Job 클래스를 사용하여 C#에서 작업을 조작 할 수 있습니다. 이 설명서를 살펴보십시오. http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.agent.job.aspx – Genius

관련 문제