SQL Server Express Edition에서 작업을 만드는 방법


82

누구든지 SQL Server Express에디션 에서 일자리를 만드는 방법을 설명해 주 시겠습니까?


6
SQL 에이전트 작업을 참조하는 경우 해당 기능은 Express Edition에서 사용할 수 없습니다. 다른 가능성에 대해서는이 질문에 대한 답변을 참조하십시오. stackoverflow.com/questions/3788583/…
8kb aug

익스프레스 에디션은 SQL 서버 브로커를 지원하며이 같은 사용자 정의 메커니즘을 만들 수 있습니다 여기에
루카스 Szozda

답변:


123

SQL Server Express 에는 SQL Server 에이전트가 포함되어 있지 않으므로 SQL 에이전트 작업 만 만들 수는 없습니다.

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

backup.bat :

sqlcmd -i backup.sql

backup.sql :

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

두 파일을 동일한 폴더에 넣고 Windows 작업 스케줄러를 통해 배치 파일을 실행하기 만하면됩니다.

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


생성하려는 작업이 백업, 인덱스 유지 관리 또는 무결성 검사 용인 경우 Ola Hallengren 의 우수한 유지 관리 솔루션 을 사용할 수도 있습니다 .

여러 저장 프로 시저 (및 SQL Server의 비 Express 버전에 대한 SQL 에이전트 작업)로 구성되며 FAQ 에는 SQL Server Express에서 작업을 실행하는 방법에 대한 섹션이 있습니다.

SQL Server Express에서 SQL Server 유지 관리 솔루션을 시작하려면 어떻게해야합니까?

SQL Server Express에는 SQL Server 에이전트가 없습니다. 따라서 cmd 파일 및 Windows 예약 된 작업을 사용하여 저장 프로 시저 실행을 예약해야합니다. 이 단계를 따르세요.

SQL Server Express에는 SQL Server 에이전트가 없습니다. 따라서 cmd 파일 및 Windows 예약 된 작업을 사용하여 저장 프로 시저 실행을 예약해야합니다. 이 단계를 따르세요.

  1. MaintenanceSolution.sql을 다운로드합니다.

  2. MaintenanceSolution.sql을 실행합니다. 이 스크립트는 필요한 저장 프로 시저를 만듭니다.

  3. 저장 프로 시저를 실행하기 위해 cmd 파일을 만듭니다. 예 :
    sqlcmd -E -S. \ SQLEXPRESS -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = N'C : \ Backup ', @BackupType ='FULL '"-b -o C : \ Log \ DatabaseBackup.txt

  4. Windows 예약 된 작업에서 cmd 파일을 호출하는 작업을 만듭니다.

  5. 작업을 예약합니다.

  6. 태스크를 시작하고 성공적으로 완료되는지 확인하십시오.


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

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

@ HasanGürsoy 또는 SQL Server 인증의 경우 파일에 파일을 넣는 대신 암호를 Windows 예약 작업 (권한이 누가 읽을 수 있는지를 제어 함)에 넣습니다. BAT 파일 명령 줄에 표시됩니다. BAT 파일에 전달되는 첫 번째 매개 변수 인 경우 BAT 파일 내에서 예를 들어 SQLCMD 행에서 % 1로 참조 할 수 있습니다.
Doug_Ivison 2015

41

SQL 에이전트 작업을 만드는 기능은 SQL Server Express Edition에서 사용할 수 없습니다. 대안은 Windows 작업 스케줄러를 사용하여 SQL 스크립트를 실행하는 배치 파일을 실행하는 것입니다.

이렇게하려면 먼저 sqljob.bat 라는 배치 파일을 만듭니다.

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

바꾸기 servername, username, password그리고 path당신과 함께.

그런 다음 sqljob.sql 이라는 SQL 스크립트 파일을 만듭니다.

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

[databasename]데이터베이스 이름으로 바꿉니다 . USE와는 GO당신이 SQL 스크립트를 작성할 때 필요하다.

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

NB : 이전에이 질문에 대해 거의 동일한 답변이 게시되었습니다. 하지만 sqlcmd.


그 sqljob.sql을 어디에 저장할까요? 그리고 언제 실행 될까요?
WTFZane

1
@WTFZane, 배치 파일을 실행하는 사람이 위치를 사용할 수있는 한 중요하지 않습니다. (위의 스크립트에서 path of sqljob.sql사용하는 위치로 바꿉니다). *.sql여기에 있는 파일은 단순한 텍스트 파일에 지나지 않습니다.
Abel

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.