將 SQL 腳本(.sql 文件)發(fā)布到發(fā)布的所有訂閱服務(wù)器。此存儲過程在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫上執(zhí)行。
sp_addscriptexec [ @publication = ] publication
[ , [ @scriptfile = ] 'scriptfile' ]
[ , [ @skiperror = ] 'skiperror' ]
[@publication = ] 'publication'
是發(fā)布名。publication 的數(shù)據(jù)類型為 sysname,沒有默認(rèn)設(shè)置。
[@scriptfile = ] 'scriptfile'
是 SQL 腳本文件的完整路徑。scriptfile 的數(shù)據(jù)類型為 nvarchar(4000),沒有默認(rèn)設(shè)置。
[@skiperror = ] 'skiperror'
表示在腳本處理過程中遇到錯誤時是否停止分發(fā)代理程序或合并代理程序。SkipError 的數(shù)據(jù)類型為 bit,默認(rèn)設(shè)置為 0。如果是 0,則停止分發(fā)代理程序或合并代理程序。如果是 1,則繼續(xù)執(zhí)行分發(fā)代理程序或合并代理程序,并忽略錯誤。
0(成功)或 1(失?。?/P>
sp_addscriptexec 用于事務(wù)復(fù)制和合并復(fù)制。
sp_addscriptexec 不用于快照復(fù)制。
sp_addscriptexec 對于將腳本應(yīng)用到訂閱服務(wù)器非常有用,并且使用 osql.exe 將腳本的內(nèi)容應(yīng)用于訂閱服務(wù)器。但是,因為訂閱服務(wù)器的配置千差萬別,所以即使在發(fā)布到發(fā)布服務(wù)器之前對腳本進行了測試,仍有可能在訂閱服務(wù)器上引起錯誤。SkipError 位使用戶可以讓分發(fā)代理程序或合并代理程序忽略錯誤繼續(xù)運行。在運行 sp_addscriptexec 之前使用 osql.exe 測試腳本。
注意跳過的錯誤將繼續(xù)記錄在代理程序歷史記錄中供您參考。有關(guān)更多信息,請參見查看代理程序歷史記錄。
只有 sysadmin 固定服務(wù)器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員才能執(zhí)行 sp_addscriptexec 。
相關(guān)文章