sp_addscriptexec(Transact-SQL)
게시의 모든 구독자에 SQL 스크립트(.sql 파일)를 게시합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
구문
sp_addscriptexec [ @publication = ] publication
[ , [ @scriptfile = ] 'scriptfile' ]
[ , [ @skiperror = ] 'skiperror' ]
[ , [ @publisher = ] 'publisher' ]
인수
[ @publication= ] 'publication'
게시의 이름입니다. publication은 sysname이며 기본값은 없습니다.[ @scriptfile= ] 'scriptfile'
SQL 스크립트 파일에 대한 전체 경로입니다. scriptfile은 **nvarchar(4000)**이며 기본값은 없습니다.[ @skiperror= ] 'skiperror'
스크립트가 처리되는 동안 오류가 발생하면 배포 에이전트 또는 병합 에이전트를 중지할지 여부를 나타냅니다. SkipError는 bit이며 기본값은 0입니다.0 = 에이전트를 중지합니다.
1 = 에이전트는 오류를 무시하고 스크립트를 계속 처리합니다.
[ @publisher= ] 'publisher'
비-Microsoft SQL Server 게시자를 지정합니다. publisher는 sysname이며 기본값은 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를 사용하는 것은 Microsoft SQL Server 구독자에 대해서만 지원됩니다.
사용 권한
sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_addscriptexec를 실행할 수 있습니다.