sp_repladdcolumn (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

將數據行加入至已發行的現有數據表發行項。 允許將新數據行加入發行此數據表的所有發行者,或只將數據行加入至發行數據表的特定發行集。 這個預存程式會在發行集資料庫的發行者端執行。

重要

此預存程式已被取代,且支援回溯相容性。 它只能與 Microsoft SQL Server 2000 (8.x) 發行者及 SQL Server 2000 (8.x) 重新發行訂閱者搭配使用。 此程式不應該用於具有 SQL Server 2005 (9.x) 或更新版本中導入之數據類型的數據行上。

Transact-SQL 語法慣例

語法

  
sp_repladdcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' ]  
    [ , [ @typetext = ] 'typetext' ]  
    [ , [ @publication_to_add = ] 'publication_to_add' ]  
    [ , [ @from_agent = ] from_agent ]  
    [ , [ @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(358),沒有預設值。

[ @column =] 'column'
這是要加入複寫之數據表中的數據行名稱。 columnsysname,沒有預設值。

[ @typetext =] 'typetext'
這是要加入之數據行的定義。 typetextnvarchar(3000),沒有預設值。 例如,如果要加入數據行order_filled,而且它是單一字元欄位,而不是 NULL,且預設值 為 N,order_filled會是 數據 行參數,而 char(1) NOT NULL CONSTRAINT constraint_name DEFAULT 'N' 的定義會是 typetext 參數值。

[ @publication_to_add =] 'publication_to_add'
這是加入新數據行的發行集名稱。 publication_to_add為 nvarchar(4000),預設值為 ALL。 如果 ALL,則包含此資料表的所有發行集都會受到影響。 如果 指定publication_to_add ,則只有這個發行集新增數據行。

[ @from_agent = ] from_agent
如果預存程式正由複寫代理程序執行。 from_agent為 int,預設值為 0,其中當復寫代理程式執行這個預存程式時,會使用 1 的值,而在其他情況下,應該使用預設值 0

[ @schema_change_script =] 'schema_change_script'
指定用來修改系統產生的自訂預存程式之 SQL Server 腳本的名稱和路徑。 schema_change_script為 nvarchar(4000),預設值為 NULL。 復寫可讓使用者定義的自定義預存程式取代事務複製中使用的一或多個預設程式。 schema_change_script是在使用 sp_repladdcolumn 對復寫數據表發行項進行架構變更之後執行,而且可用來執行下列其中一項:

  • 如果自動重新產生自定義預存程式, schema_change_script 可用來卸除這些自定義預存程式,並將其取代為支援新架構的使用者定義自定義預存程式。

  • 如果未自動重新產生自定義預存程式, schema_change_script可用來重新產生這些預存程式,或建立使用者定義的自定義預存程式。

[ @force_invalidate_snapshot = ] force_invalidate_snapshot
啟用或停用快照集失效的能力。 force_invalidate_snapshot有點,預設值為1

1 指定發行項的變更可能會導致快照集無效,如果發生這種情況,值為 1 會授與新快照集發生的許可權。

0 指定發行項的變更不會造成快照集無效。

[ @force_reinit_subscription = ] force_reinit_subscription
啟用或停用重新初始化訂閱的能力。 force_reinit_subscription是預設值為 0

0 指定發行項的變更不會使訂閱重新初始化。

1 指定發行項的變更可能會導致重新初始化訂閱,如果發生這種情況,則值為 1 會授與訂閱重新初始化的許可權。

傳回碼值

0 (成功) 或 1 (失敗)

權限

只有系統管理員固定伺服器角色和db_owner固定資料庫角色的成員才能執行sp_repladdcolumn。

另請參閱

SQL Server 複寫中已被取代的功能
系統預存程序 (Transact-SQL)