2011-08-26 6 views
51

SQL Server Express 버전에서 작업을 어떻게 만들 수 있습니까?SQL Server Express 버전에서 작업을 만드는 방법

+4

SQL 에이전트 작업을 언급하는 경우 Express Edition에서는 해당 기능을 사용할 수 없습니다. 다른 가능성에 대해서는이 질문에 대한 답변을 참조하십시오. http://stackoverflow.com/questions/3788583/automate-a-sql-query-to-run-every-month/3789024#3789024 – 8kb

+0

Express Edition은 SQL Server Broker를 지원하며 [here] (http://stackoverflow.com/a/41909818/5070879)와 같은 사용자 지정 메커니즘을 만들 수 있습니다. – lad2025

답변

89

SQL Server Express doesn't include SQL Server Agent이므로 SQL Agent 작업을 만들 수 없습니다.

수행 할 수있는 작업은 다음과 같습니다.
배치 파일 및 SQL 스크립트 파일을 만들고 Windows 작업 스케줄러를 통해 실행하여 "수동"작업을 만들 수 있습니다. 예를 들어
, 당신은 백업 할 수있는이 같은 두 개의 파일과 데이터베이스 :

backup.bat :

sqlcmd -i backup.sql 

backup.sql :

backup database TeamCity to disk = 'c:\backups\MyBackup.bak' 

그냥 두 파일을 넣어 같은 폴더에 넣고 Windows 작업 스케줄러를 통해 배치 파일을 실행합니다.

첫 번째 파일은 sqlcmd utility을 호출하고 SQL 스크립트 파일을 전달하는 Windows 배치 파일입니다.
SQL 스크립트 파일에 T-SQL이 포함되어 있습니다. 필자의 예에서는 데이터베이스를 백업하는 것이 한 줄이지만 T-SQL을 내부에 넣을 수 있습니다. 예를 들어, 대신 UPDATE 쿼리를 수행 할 수 있습니다.

+1

로그인 정보는 어디에 지정해야합니까? –

+0

@ HasanGürsoy SQLCMD (BAT 파일 포함 또는 제외)를 실행하는 예약 된 작업을 만드는 경우 Windows 인증을 위해 SQLCMD의 "-E"매개 변수를 사용하는 것이 좋습니다. 이 작업을하려면 Windows 예약 된 작업의 소유자 인 Windows 사용자에 대해 SQL Server 로그인을 정의하십시오. 어떤 Windows 로그인 작업이 불명확 한 경우 "WHOAMI"(DOS 명령)를 BAT 파일에 넣고 BAT 파일 출력을 캡처하여 누가 실행 중인지 확인하십시오. –

+0

@ HasanGürsoy 또는 SQL Server 인증의 경우 암호를 아무 곳이나 파일에 두는 대신 권한이있는 사람이 읽을 수있는 Windows 예약 된 작업에 암호를 넣습니다. BAT 파일 명령 행을 실행합니다. 첫 번째 매개 변수가 BAT 파일로 전달되면 BAT 파일 내에서 SQLCMD 행의 % 1 (예 : % 1)로 참조 할 수 있습니다. –

13

SQL Server Express 버전은 제한이 있습니다. 한 가지 방법은 작업을 예약 할 수있는 SQL 에이전트가 없다는 것입니다.

는 기능을 제공 몇 타사 확장이있다 - 체크 아웃 예 : SQL 에이전트 작업을 생성하는 기능은 SQL에서 사용할 수 없습니다

23

Server Express Edition. 다른 방법은 Windows 작업 스케줄러를 사용하여 SQL 스크립트를 실행하는 배치 파일을 실행하는 것입니다. 이 먼저 교체

sqlcmd -S servername -U username -P password -i path of sqljob.sql 

sqljob.bat 라는 배치 파일을 만들고 수행하기 위해

servername, username, password과 당신과 path.

그런 다음 데이터베이스 이름으로 [databasename]를 교체

USE [databasename] 
--T-SQL commands go here 
GO 

sqljob.sql 명명 된 SQL 스크립트 파일을 만듭니다. USEGO은 SQL 스크립트를 작성할 때 필요합니다.

sqlcmd은 SQL 스크립트를 실행하는 명령 줄 유틸리티입니다. 이 두 파일을 만든 후 Windows 작업 스케줄러를 사용하여 배치 파일을 실행합니다.

NB : 이전에이 질문에 대해 거의 동일한 대답이 게시되었습니다. 그러나 sqlcmd을 사용하여 로그인 정보를 지정하지 않았기 때문에 불완전하다고 느꼈습니다.

+0

어디에서 sqljob.sql을 저장할 수 있습니까? 실행시기를 어떻게 지정할 수 있습니까? – WTFZane

관련 문제