一个例子:
use master
goexec sp_adddistributor @distributor = 'dongniansheng'
exec sp_adddistributiondb @database = '新的发布1',
 @security_mode = 1,
 @createmode = 0
exec sp_adddistpublisher @publisher = 'dongniansheng',
 @distribution_db = '新的发布1',
 @security_mode = 1,
 @working_directory = '\\dongniansheng\D$\数据库\MSSQL7\REPLDATA'
exec sp_replicationdboption @dbname = 'pubs',
 @optname = 'publish',
 @value = 'true'
use pubs
go
exec sp_addpublication @publication = '快照出版1',
  @restricted = 'false',
  @sync_method = 'native',
  @repl_freq = 'Snapshot',
  @description = '快照出版pubs',
  @status = 'active',
  @independent_agent = 'true',
  @enabled_for_internet = 'false',
  @allow_push = 'true',
  @allow_pull = 'true',
  @allow_anonymous = 'false',
  @allow_sync_tran = 'false',
  @autogen_sync_procs = 'false'exec sp_addpublication_snapshot
  @publication = '快照出版1',
  @frequency_type = 4,
  @frequency_interval = 1,
  @frequency_subday = 4,
  @frequency_subday_interval = 5
exec sp_addarticle @publication = '快照出版1',
  @article = 'authors',
  @source_table = 'authors',
  @destination_table = 'authors',
  @type = 'logbased',
  @description = 'authors表出版条目,过滤其中的phone为unknown的行',
  @pre_creation_cmd = 'drop',
  @schema_option = 0x0000000000000073
exec sp_articlefilter @publication = '快照出版1',
  @article = 'authors',
  @filter_name = 'authors_Hor_filter',
  @filter_clause = 'phone <> "UNKNOWN"'exec sp_articleview  @publication = '快照出版1',
  @article = 'authors',
  @view_name = 'authors_Hor_view',
  @filter_clause = 'phone <> "UNKNOWN"'
exec sp_addarticle @publication = '快照出版1',
  @article = 'publishers',
  @source_table = 'publishers',
  @destination_table = 'publishers',
  @type = 'logbased',
  @description = 'publishers表出版条目,只出版其pub_id和pub_name列',
  @pre_creation_cmd = 'drop',
  @schema_option = 0x0000000000000073exec sp_articlecolumn @publication = '快照出版1',
  @article = 'publishers',
  @column = 'pub_name',
  @operation = 'add'exec sp_articlecolumn @publication = '快照出版1',
  @article = 'publishers',
  @column = 'country',
  @operation = 'add'
exec sp_articleview  @publication = '快照出版1',
  @article = 'publishers',
  @view_name = 'publishers_Ver_view'

解决方案 »

  1.   


    一 配置发布服务器在发布服务器上执行以下步骤:(1) 从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导 
    (2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器
    (3) [下一步] 设置快照文件夹 
        一般采用默认\\servername\d$\Program Files\Microsoft SQL Server\MSSQL\ReplData
    **(4) [下一步] 自定义配置 
       可以选择:
       是,让我设置分发数据库属性启用发布服务器或设置发布设置
       否,使用下列默认设置   建议采用自定义设置
    (5) [下一步] 设置分发数据库名称和位置 采用默认值
    (6) [下一步] 启用发布服务器 选择作为发布的服务器
    (7) [下一步] 选择需要发布的数据库和发布类型
    (8) [下一步] 选择注册订阅服务器
    (9) [下一步] 完成配置
       
        
    二 创建出版物发布服务器上
    (1)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令
    (2)选择要创建出版物的数据库,然后单击[创建发布]
    (3)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。
    对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)
     
    (4)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,
    SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。
    但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器(5)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表注意: 如果前面选择了事务发布 则再这一步中只能选择带有主键的表
    (6)选择发布名称和描述**(7)自定义发布属性  向导提供的选择:
    是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性
    否 根据指定方式创建发布 建议采用自定义的方式(8)[下一步] 选择筛选发布的方式 
    (9)[下一步] 可以选择是否允许匿名订阅1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器
    方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器] 中添加否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅
    如果仍然需要匿名订阅则用以下解决办法 
    [企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示
    (10)[下一步] 设置快照 代理程序调度
    (11)[下一步] 完成配置
    当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
    三 订阅服务器的配置
    (一) 强制订阅的配置
    在发布服务器上
    [企业管理器]->[复制]->[发布内容]->[属性]->[订阅]->[强制新建]
    然后出现强制订阅向导 
    选择订阅服务器->订阅数据库名->设置分发代理程序调度->初始化订阅->启动要求的服务
    (发布服务器的agent要启动)->完成即可 (二) 请求订阅的配置订阅服务器上执行以下操作(1) 从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
    (2) 选择[请求新订阅] 打开请求订阅向导
    (3) [下一步]选择已注册的发布
    (4) [下一步]选择创建订阅的数据库
    (5) [下一步]选择匿名订阅或署名订阅
    (6) [下一步] 初始化订阅 选择初始化架构和数据
    (7) [下一步]选择快照文件的存放位置 一般采用发布服务器的默认快照文件夹
    **(8) [下一步]设置分发代理程序调度 可以选择订阅更新内容的间隔
    (9) [下一步]系统会提示检查发布服务器的代理服务的运行状态
    (10) [下一步] 完成配置