복붙노트

[SQL] 어떻게 저장 프로 시저 SQL 서버 익스프레스 에디션의 모든 일을 실행?

SQL

어떻게 저장 프로 시저 SQL 서버 익스프레스 에디션의 모든 일을 실행?

어떻게 SQL 서버 Express Edition을 매일 특정 시간에 저장 프로 시저를 실행할 수 있습니다?

노트:

관련 질문 :

해결법

  1. ==============================

    1.SQL 서버 Express는 SQL 에이전트와 함께 제공되지 않기 때문에, 당신은 저장된 프로 시저 또는 SQL 스크립트와 SQLCMD를 실행하려면 Windows 스케줄러를 사용할 수 있습니다.

    SQL 서버 Express는 SQL 에이전트와 함께 제공되지 않기 때문에, 당신은 저장된 프로 시저 또는 SQL 스크립트와 SQLCMD를 실행하려면 Windows 스케줄러를 사용할 수 있습니다.

    http://msdn.microsoft.com/en-us/library/ms162773.aspx

  2. ==============================

    2.나는 나를 위해 일한 다음과 같은 메커니즘을 발견했다.

    나는 나를 위해 일한 다음과 같은 메커니즘을 발견했다.

    USE Master
    GO
    
    IF  EXISTS( SELECT *
                FROM sys.objects
                WHERE object_id = OBJECT_ID(N'[dbo].[MyBackgroundTask]')
                AND type in (N'P', N'PC'))
        DROP PROCEDURE [dbo].[MyBackgroundTask]
    GO
    
    CREATE PROCEDURE MyBackgroundTask
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
    
        -- The interval between cleanup attempts
        declare @timeToRun nvarchar(50)
        set @timeToRun = '03:33:33'
    
        while 1 = 1
        begin
            waitfor time @timeToRun
            begin
                execute [MyDatabaseName].[dbo].[MyDatabaseStoredProcedure];
            end
        end
    END
    GO
    
    -- Run the procedure when the master database starts.
    sp_procoption    @ProcName = 'MyBackgroundTask',
                    @OptionName = 'startup',
                    @OptionValue = 'on'
    GO
    

    일부 노트 :

  3. ==============================

    3.당신이 익스프레스 에디션을 사용하는 경우 Windows 스케줄러 또는 어떤 방법으로 서버에 연결하는 응용 프로그램을 사용해야합니다.

    당신이 익스프레스 에디션을 사용하는 경우 Windows 스케줄러 또는 어떤 방법으로 서버에 연결하는 응용 프로그램을 사용해야합니다.

    당신은 SQLCMD 실행하기 위해 스케줄러를 사용합니다. 여기에 명시 판으로 SQLCMD 작업을 얻기위한 몇 가지 지침입니다.

  4. ==============================

    4.예약 된 작업을 만드는 것이 통화 "C : \ YourDirNameHere \ TaskScript.vbs '시작은. VBScript를 반복 실행 작업을 수행한다 (이 예에서는 15 분 루프 'S)

    예약 된 작업을 만드는 것이 통화 "C : \ YourDirNameHere \ TaskScript.vbs '시작은. VBScript를 반복 실행 작업을 수행한다 (이 예에서는 15 분 루프 'S)

    비아 명령 행 (관리자로 cmd.exe를 실행해야합니다) :

    schtasks.exe /create /tn "TaskNameHere" /tr "\"C:\YourDirNameHere\TaskScript.vbs\" " /sc ONSTARTUP
    

    예 TaskScript.vbs : 이것은 자동으로 RunSQLScript.bat를 사용하여 사용자 정의 SQL 스크립트를 실행

    Do While 1
        WScript.Sleep(60000*15)
        Set WshShell = CreateObject("WScript.Shell")
        WshShell.RUN "cmd /c C:\YourDirNameHere\RunSQLScript.bat C:\YourDirNameHere\Some_TSQL_Script.sql", 0
    Loop
    

    RunSQLScript.bat :이 용도는 데이터베이스 인스턴스를 호출하고 SQL 스크립트를 실행하는 SQLCMD

    @echo off
    sqlcmd -S .\SQLEXPRESS -i %1
    
  5. ==============================

    5.http://www.lazycoding.com/products.aspx에서 SQL 스케줄러

    http://www.lazycoding.com/products.aspx에서 SQL 스케줄러

  6. ==============================

    6.다른 비슷한 질문을 질문했다, 가능성이 하나의 중복으로 폐쇄되고, 답변에 언급되지 않은 많은 옵션이 있기 때문에 여기에 이미 제시 ...

    다른 비슷한 질문을 질문했다, 가능성이 하나의 중복으로 폐쇄되고, 답변에 언급되지 않은 많은 옵션이 있기 때문에 여기에 이미 제시 ...

    당신은 SQL Express를 사용하고 있기 때문에 당신은 SQL Server 에이전트를 사용할 수 없습니다. 그러나 당신이 AT 또는 Windows 작업 스케줄러는 운영 체제에 따라 사용하여 예약 할 수 있습니다 모두 많은 대안이있다 :

    다음 언어 / 도구 (및 많은 다른) 모든 SQL 서버에 연결하고 저장 프로 시저를 실행 할 수있는 능력을 가지고있다. 이러한 에이전트 교체를 시도 할 수 있습니다 :

  7. ==============================

    7.나는이 문제를 해결하기 위해 찾은 가장 쉬운 방법은 저장 한 다음 저장 프로 시저를 실행하는 쿼리를 작성하는 것입니다. 쿼리는 다음과 이것과 유사합니다.

    나는이 문제를 해결하기 위해 찾은 가장 쉬운 방법은 저장 한 다음 저장 프로 시저를 실행하는 쿼리를 작성하는 것입니다. 쿼리는 다음과 이것과 유사합니다.

         use [database name]
         exec storedproc.sql
    

    그 다음에 아래의 코드와 비슷한 배치 파일을 만듭니다.

    sqlcmd -S servername\SQLExpress -i c:\expressmaint.sql
    

    그런 다음 원하는대로 작업 스케줄러가 종종 배치를 실행해야

  8. ==============================

    8.SQL Express에서 예약하는 또 다른 방법은 서비스 브로커 대화 타이머를 사용하는 것입니다. 사용자 정의 스케줄러를 부트 스트랩하는 데 사용할 수있는, 주기적으로 저장 프로 시저를 실행합니다.

    SQL Express에서 예약하는 또 다른 방법은 서비스 브로커 대화 타이머를 사용하는 것입니다. 사용자 정의 스케줄러를 부트 스트랩하는 데 사용할 수있는, 주기적으로 저장 프로 시저를 실행합니다.

    SQL 서버 Express에서 예를 들어, 작업 예약을 참조하십시오

  9. ==============================

    9.당신은 SQL 문을 실행하는 것입니다 간단한 콘솔 응용 프로그램을 해고 작업 스케줄러를 사용할 수 있습니다.

    당신은 SQL 문을 실행하는 것입니다 간단한 콘솔 응용 프로그램을 해고 작업 스케줄러를 사용할 수 있습니다.

  10. ==============================

    10.당신이 정확하게 지적했듯이, 에이전트 프로세스없이, 당신은 서버에 아마도 당신이 쓰는 서비스 및 설치 또는 Windows 스케줄러를 외부 다른 뭔가가 필요합니다.

    당신이 정확하게 지적했듯이, 에이전트 프로세스없이, 당신은 서버에 아마도 당신이 쓰는 서비스 및 설치 또는 Windows 스케줄러를 외부 다른 뭔가가 필요합니다.

    참고 로컬 응용 프로그램에 대한 빠른 설치와 함께, 기계가 테이블을 (절단 할 시간에하지 않을 수 가능하다는 것을 당신은 매일 밤 자정을 절단하도록 설정 말하지만, 사용자는 그의 기계가 결코 ).

    예약 된 작업이 실행되지 않습니다 및 감사 로그 제어의 출소 그래서 (이뿐만 아니라 SQL Server 에이전트에 문제이지만, 하나는 실제 서버가 논스톱을 실행한다고 가정 할 것이다). 그것은 절단 또는 무엇이든 당신의 작업이기 때문에 X 일보다 더있다 감지하면 당신이 응용 프로그램을 가지고있을이 상황에 맞는 경우 더 나은 전략은 필요에 따라 그것을 할.

    보는 또 다른 것은 당신이 웹 응용 프로그램에 대해 얘기하는 경우 응용 프로그램이로드 될 때, 시간이있을 수 있습니다, 그리고 작업이 때 이벤트가 발생 할 수 있습니다.

    주석에서 언급 한 바와 같이, sp_procoption이 -이 당신의 SP 엔진이 시작될 때마다 실행할 수 있습니다 -이 방법의 단점을 인스턴스를 장기 실행을 위해,이 호출 사이의 긴 시간, 그리고 여전히이 수도 있습니다 엔진이 항상 실행되어 있지 않은 경우 문제는 당신이 할 수있는 작업을해야합니다.

  11. ==============================

    11.우리 회사는 SQLEXPRESS를 사용하고 어떤 SQL 에이전트가 없습니다.

    우리 회사는 SQLEXPRESS를 사용하고 어떤 SQL 에이전트가 없습니다.

    더 "오른쪽"모든 솔루션은 내가 거기에 무엇을했는지 공유 할 매우 복잡하다 등의 대답이 표시되지 않기 때문에. 그 정말 나쁜 있지만, 그것은 나에게 큰 일 수 있습니다.

    나는 밀접하게 내가 필요로하는 동일한 시간 범위를 가지고 필요한 기능을 적용하는 트리거 "ON INSERT"를 만들어 테이블에 삽입 (사람들이 할)의 동작을 선택했습니다.

  12. from https://stackoverflow.com/questions/1675206/how-to-run-a-stored-procedure-every-day-in-sql-server-express-edition by cc-by-sa and MIT license