sp_repladdcolumn (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
將數據行加入至現有的已發佈數據表發行項。 允許將新數據行加入發行此數據表的所有發行者,或只將數據行加入至發行數據表的特定發行集。 這個預存程式會在發行集資料庫的發行者端執行。
重要
此預存程式已被取代,且支援回溯相容性。 它只能與 SQL Server 2000 (8.x) 發行者及 SQL Server 2000 (8.x) 重新發行訂閱者搭配使用。 此程式不應該用於具有 SQL Server 2005 (9.x) 和更新版本中導入之數據類型的數據行上。
語法
sp_repladdcolumn
[ @source_object = ] N'source_object'
, [ @column = ] N'column'
, [ @typetext = ] N'typetext'
[ , [ @publication_to_add = ] N'publication_to_add' ]
[ , [ @from_agent = ] from_agent ]
[ , [ @schema_change_script = ] N'schema_change_script' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
引數
[ @source_object = ] N'source_object'
包含要加入之新數據行的數據表發行項名稱。 @source_object為 nvarchar(358),沒有預設值。
[ @column = ] N'column'
要加入以供復寫之數據表中的數據行名稱。 @column為 sysname,沒有預設值。
[ @typetext = ] N'typetext'
要加入之數據行的定義。 @typetext為 nvarchar(3000),沒有預設值。 例如,如果要加入數據行order_filled,而且它是單一字元欄位,而不是 NULL
,且預設值 為 N,order_filled會是 數據 行參數,而 char(1) NOT NULL
CONSTRAINT constraint_name DEFAULT 'N' 的定義會是 @typetext 參數值。
[ @publication_to_add = ] N'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 = ] N'schema_change_script'
指定用來修改系統產生的自訂預存程式之 SQL Server 腳本的名稱和路徑。 @schema_change_script為 nvarchar(4000),預設值為 NULL
。 復寫可讓使用者定義的自定義預存程式取代事務複製中使用的一或多個預設程式。 使用 對復寫數據表發行項sp_repladdcolumn
進行架構變更之後,就會執行@schema_change_script,而且可以如下所示使用:
如果自動重新產生自定義預存程式, @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
(失敗)。
權限
只有系統管理員固定伺服器角色和db_owner固定資料庫角色的成員才能執行 sp_repladdcolumn
。