【问题标题】:Adding all articles to a publication using TSQL使用 TSQL 将所有文章添加到出版物
【发布时间】:2017-10-23 16:42:46
【问题描述】:

我知道您可以使用 SSMS 中的 GUI 轻松完成此操作。但是,有没有办法使用 TSQL 包含所有文章,而不是使用 sp_addarticle 逐一进行?

我最初的想法是返回所有表名(使用 sys 查询),然后使用循环将它们提供给 sp_addarticle。我想知道是否有更聪明的方法,例如我可以将“全部”分配给它的内置变量?

【问题讨论】:

  • 添加一张表,点击Script按钮。获取您放入循环中的模板。享受:)
  • @lad2025 由于某种原因,Scrip 按钮被禁用。是因为我有开发者版吗?

标签: sql-server tsql stored-procedures replication


【解决方案1】:

我就是这样做的

USE [DatabaseName]
DECLARE @name sysname
DECLARE @getid CURSOR


SET @getid = CURSOR FOR

-- Select all tables name
SELECT [name]
FROM [DataBaseName].[sys].[tables] 
WHERE is_ms_shipped=0

-- While loop
OPEN @getid
FETCH NEXT
FROM @getid INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
-- add article 
exec sp_addarticle  @publication =  @publication
    ,@article =  @name
    ,@source_object = @name
    ,@del_cmd = 'NONE' 

FETCH NEXT
FROM @getid INTO @name
END

CLOSE @getid
DEALLOCATE @getid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2017-08-12
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多