다음을 통해 공유


sp_addscriptexec(Transact-SQL)

게시의 모든 구독자에 SQL 스크립트(.sql 파일)를 게시합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_addscriptexec [ @publication = ] publication
    [ , [ @scriptfile = ] 'scriptfile' ]
    [ , [ @skiperror = ] 'skiperror' ]
    [ , [ @publisher = ] 'publisher' ]

인수

  • [ @publication= ] 'publication'
    게시의 이름입니다. publicationsysname이며 기본값은 없습니다.

  • [ @scriptfile= ] 'scriptfile'
    SQL 스크립트 파일에 대한 전체 경로입니다. scriptfile은 **nvarchar(4000)**이며 기본값은 없습니다.

  • [ @skiperror= ] 'skiperror'
    스크립트가 처리되는 동안 오류가 발생하면 배포 에이전트 또는 병합 에이전트를 중지할지 여부를 나타냅니다. SkipErrorbit이며 기본값은 0입니다.

    0 = 에이전트를 중지합니다.

    1 = 에이전트는 오류를 무시하고 스크립트를 계속 처리합니다.

  • [ @publisher= ] 'publisher'
    비-MicrosoftSQL Server 게시자를 지정합니다. publishersysname이며 기본값은 NULL입니다.

    [!참고]

    SQL Server 게시자에서 게시할 때는 publisher를 사용하면 안 됩니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_addscriptexec는 트랜잭션 복제 및 병합 복제에 사용됩니다.

sp_addscriptexec는 스냅숏 복제에는 사용하지 않습니다.

sp_addscriptexec를 사용하려면 SQL Server 서비스 계정은 스냅숏 위치에 대한 읽기/쓰기 권한과 스크립트가 저장된 위치에 대한 읽기 권한을 가져야 합니다.

sqlcmd 유틸리티는 구독자에서 스크립트를 실행할 때 사용되며 스크립트는 구독 데이터베이스에 연결할 때 배포 에이전트 또는 병합 에이전트에서 사용하는 보안 컨텍스트에서 실행됩니다. 이전 버전의 SQL Server에서 에이전트를 실행하면 sqlcmd 대신 osql 유틸리티가 사용됩니다.

sp_addscriptexec는 구독자에 스크립트를 적용할 때 유용하며 sqlcmd를 사용하여 구독자에 스크립트 내용을 적용합니다. 하지만 구독자 구성은 다양할 수 있으므로 게시자에 게시하기 전에 테스트한 스크립트는 구독자에서 오류를 일으킬 수 있습니다. skiperror를 사용하면 배포 에이전트 또는 병합 에이전트가 오류를 무시하고 계속 동작하도록 할 수 있습니다. sp_addscriptexec를 실행하기 전에 스크립트를 테스트하려면 sqlcmd를 사용하십시오.

[!참고]

오류 건너뛰기는 에이전트 기록에 참조로 계속 기록됩니다.

스냅숏 배달을 위해 FTP를 사용하는 게시에 대한 스크립트 파일 게시에 sp_addscriptexec를 사용하는 것은 MicrosoftSQL Server 구독자에 대해서만 지원됩니다.

사용 권한

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_addscriptexec를 실행할 수 있습니다.