다음을 통해 공유


sp_addscriptexec(Transact-SQL)

적용 대상: SQL Server

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

Transact-SQL 구문 표기 규칙

구문

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

인수

[ @publication = ] N'publication'

게시의 이름입니다. @publication 기본값이 없는 sysname입니다.

[ @scriptfile = ] N'scriptfile'

SQL 스크립트 파일의 전체 경로입니다. @scriptfile nvarchar(4000)이며 기본값은 없습니다.

[ @skiperror = ] skiperror

스크립트 처리 중에 오류가 발생할 때 배포 에이전트 또는 병합 에이전트 중지해야 하는지 여부를 나타냅니다. @skiperror 비트이며 기본값은 .입니다0.

  • 0 = 에이전트가 중지됩니다.
  • 1 = 에이전트가 스크립트를 계속하고 오류를 무시합니다.

[ @publisher = ] N'publisher'

SQL Server가 아닌 게시자를 지정합니다. @publisher sysname이며 기본값은 .입니다NULL.

@PUBLISHER SQL Server 게시자에서 게시할 때 사용하면 안 됩니다.

반환 코드 값

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

설명

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

sp_addscriptexec 는 스냅샷 복제에 사용되지 않습니다.

사용 sp_addscriptexec하려면 SQL Server 서비스 계정에 스냅샷 위치에 대한 읽기 및 쓰기 권한과 스크립트가 저장된 위치에 대한 읽기 권한이 있어야 합니다.

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

sp_addscriptexec는 구독자에 스크립트를 적용하는 데 유용하며 sqlcmd 유틸리티를 사용하여 스크립트의 내용을 구독자에 적용합니다. 그러나 구독자 구성은 다를 수 있으므로 게시자에 게시하기 전에 테스트된 스크립트로 인해 구독자에 오류가 계속 발생할 수 있습니다. @skiperror 배포 에이전트 또는 병합 에이전트 오류를 무시하고 계속할 수 있습니다. sqlcmd 유틸리티사용하여 실행sp_addscriptexec하기 전에 스크립트를 테스트합니다.

참고 항목

건너뛴 오류는 참조를 위해 에이전트 기록에 계속 기록됩니다.

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

사용 권한

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