sp_repldropcolumn (Transact-SQL)
從已發行的現有資料表發行項中卸除資料行。這個預存程序執行於發行集資料庫的發行者端。
重要事項: |
---|
這個預存程序已被取代,支援它的目的,主要是為了與舊版相容。它只應搭配 Microsoft SQL Server 2000 發行者和 SQL Server 2000 重新發行訂閱者使用。 |
語法
sp_repldropcolumn [ @source_object = ] 'source_object', [ @column = ] 'column'
[ , [ @schema_change_script = ] 'schema_change_script' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
引數
- [ @source_object = ] 'source_object'
這是要卸除的資料行所在的資料表發行項的名稱。source_object 是 nvarchar(258),沒有預設值。
- [ @column = ] 'column'
這是要卸除的資料表中的資料行名稱。column 是 sysname,沒有預設值。
[ @schema_change_script = ] 'schema_change_script'
指定用來修改系統產生的自訂預存程序之 SQL Server 指令碼的名稱和路徑。schema_change_script 是 nvarchar(4000),預設值是 NULL。複寫可讓使用者自訂的自訂預存程序,取代交易式複寫所用的一或多個預設程序。schema_change_script 是在利用 sp_repldropcolumn 來變更複寫的資料表發行項的結構描述之後執行,且可用來執行下列動作之一:- 如果自動重新產生自訂預存程序,就可以利用 schema_change_script 來卸除這些自訂預存程序,用支援新結構描述的使用者自訂的自訂預存程序來取代它們。
- 如果並未自動重新產生自訂預存程序,就可以利用 schema_change_script 來重新產生這些自訂預存程序,或建立使用者自訂的自訂預存程序。
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
啟用或停用使快照集失效的能力。force_invalidate_snapshot 是 bit,預設值是 1。1 指定發行項的變更可能使快照集失效,若是如此,1 值會提供將出現之新快照集的權限。
0 指定發行項的變更不會使快照集失效。
[ @force_reinit_subscription = ] force_reinit_subscription
啟用或停用重新初始化訂閱的能力。force_reinit_subscription 是 bit,預設值是 0。0 指定發行項的變更不會使訂閱重新初始化。
1 指定發行項的變更可能使訂閱重新初始化,若是如此,1 值會提供將進行的訂閱重新初始化的權限。
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_repldropcolumn 已被取代。您應該針對發行的資料表來執行資料定義語言 (DDL) 命令,以便從複寫的資料表發行項中移除資料行。只要已啟用 DDL 複寫,複寫便會自動複寫這些 DDL 命令。如需詳細資訊,請參閱<對發行集資料庫進行結構描述變更>。
當您從執行於舊版 Microsoft SQL Server 2000 訂閱者的重新發行訂閱者傳播 DDL 變更時,您仍然需要 sp_repladdcolumn。
sp_repldropcolumn 適用於所有複寫類型。
當使用 sp_repldropcolumn 時,如果在屬於使用 Data Transformation Services (DTS) 封裝之發行集的發行項上進行結構描述變更,結構描述變更不會傳播到訂閱者,也不會在訂閱者重新產生 INSERT/UPDATE/DELETE 的自訂程序。使用者必須以手動方式來重新產生 DTS 封裝,並在訂閱者端進行對應的結構描述變更。如果未套用結構描述更新,散發代理程式可能無法套用後續的修正。在進行結構描述變更之前,請確定沒有要傳遞的暫止交易。
重要事項: |
---|
您應該在執行 sp_repldropcolumn 之後,才執行發行集資料庫的備份。如果沒有完成這個動作,在還原發行集資料庫之後,合併可能會失敗。 |
權限
只有在散發者端的系統管理員 (sysadmin) 固定伺服器角色成員,或散發資料庫中的 db_owner 或 db_ddladmin 固定資料庫角色成員,才能夠執行 sp_repldropcolumn。