sys.sp_addscriptexec (Transact-SQL)

platí pro:SQL Server

Zveřejní Transact-SQL skript (.sql soubor) všem odběratelům publikace. Tato uložená procedura se spustí v Publisheru v databázi publikace.

Transact-SQL konvence syntaxe

Syntax

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

Arguments

[ @publication = ] N'publikace'

Název publikace. @publication je sysname, bez výchozího nastavení.

[ @scriptfile = ] N'scriptfile'

Kompletní cesta k SQL skriptu. @scriptfile je nvarchar(4000), bez výchozího nastavení.

[ @skiperror = ] skiperror

Označuje, zda by se měl Distribution Agent nebo Merge Agent zastavit, když při zpracování skriptu nastane chyba. @skiperror je bit, s výchozím nastavením 0.

  • 0 = agent zastaví.
  • 1 = agent pokračuje ve skriptu a chybu ignoruje.

[ @publisher = ] N'publisher'

Určuje vydavatele jiného typu než SQL Server. @publisher je sysname s výchozím nastavením NULL.

@publisher by se neměla používat při publikování z SQL Server Publisher.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Remarks

sp_addscriptexec se používá v transakční replikaci a replikaci při sloučení.

sp_addscriptexec Není použit pro replikaci snapshotů.

Pro použití sp_addscriptexecmusí mít účet služby SQL Server oprávnění ke čtení a zápisu na místě snapshotu a oprávnění ke čtení na místě, kde jsou skripty uloženy.

Nástroj sqlcmd se používá k vykonání skriptu u Subscriber a skript je vykonán v bezpečnostním kontextu používaném Distribution Agent nebo Merge Agent při připojení k databázi předplatného. Když je agent spuštěn na předchozí verzi SQL Server, místo utility sqlcmd se používá utilita osql.

sp_addscriptexec je užitečný při aplikaci skriptů na předplatitele a používá utilitu sqlcmd k aplikaci obsahu skriptu na předplatitele. Protože se však konfigurace Subscriber mohou lišit, skripty testované před odesláním na Publisher mohou stále způsobovat chyby u Subscribera. @skiperror umožňuje Distribution Agent nebo Merge Agent ignorovat chyby a pokračovat dál. Použijte nástroj sqlcmd k testování skriptů před spuštěním sp_addscriptexec.

Note

Přeskočené chyby se nadále zaznamenávají v historii agenta pro referenci.

Použití sp_addscriptexec pro zveřejnění skriptového souboru pro publikace pomocí FTP pro doručení snímků je podporováno pouze pro předplatitele SQL Server.

Povolení

Pouze členové role pevného serveru správce systému nebo role pevné databáze db_owner mohou vykonávat sp_addscriptexec.