如何在合并项目之间自动生成一组联接筛选器 (SQL Server Management Studio)

可以在新建发布向导的**“筛选表行”页上,或者“发布属性 - <发布>”对话框的“筛选行”**页上自动生成一组联接筛选器。有关使用该向导和访问该对话框的详细信息,请参阅如何创建发布和定义项目 (SQL Server Management Studio)如何查看和修改发布属性以及项目属性 (SQL Server Management Studio)

ms151739.note(zh-cn,SQL.90).gif注意:
如果在初始化发布的订阅后在“发布属性 - <发布>”对话框中自动生成一组联接筛选器,则必须生成一个新的快照,并在进行更改后重新初始化所有订阅。有关属性更改要求的详细信息,请参阅更改发布和项目属性

可以手动为一组表创建联接筛选器,也可由复制根据表上定义的外键和主键的关系自动生成联接筛选器。有关手动创建联接筛选器的详细信息,请参阅如何定义和修改合并项目间的联接筛选器 (SQL Server Management Studio)

在合并项目之间自动生成一组联接筛选器

  1. 在新建发布向导的**“筛选表行”页上,或者在“发布属性 - <发布>”对话框的“筛选行”页上,单击“添加”,然后单击“自动生成筛选器”**。

    ms151739.note(zh-cn,SQL.90).gif注意:
    自动生成筛选器将删除发布中所有现有的行筛选器或联接筛选器。可以在自动生成一组筛选器后添加筛选器。
  2. 按照**“生成筛选器”**对话框中的过程创建行筛选器。然后通过主键和外键的关系将行筛选器扩展到与筛选的表有关的表。

    1. 从下拉列表框中选择要筛选的表。

    2. 在**“筛选语句”文本框中创建一个筛选语句。您可以在文本区域中直接键入,也可以从“列”**列表框中拖放列。
      **“筛选语句”**文本区域包括默认的文本,其格式为:

      SELECT <published_columns> FROM [tableowner].[tablename] WHERE
      

      不能更改默认文本;在 WHERE 关键字后使用标准的 SQL 语法键入静态行筛选器或参数化行筛选器的筛选器子句。参数化行筛选器的完整筛选器子句如下所示:

      SELECT <published_columns> FROM [HumanResources].[Employee] WHERE LoginID = SUSER_SNAME()
      

      WHERE 子句应使用由两部分构成的命名方式,不支持由三部分和四部分构成的命名方式。

    3. 指定筛选选项。
      选择与订阅服务器之间共享数据的方式相匹配的选项:“此表中的行将转到多个订阅”“此表中的行将仅转到一个订阅”。如果选择**“此表中的行将仅转到一个订阅”**,则合并复制可以通过存储和处理较少的元数据来优化性能。但是,必须确保对数据分区时不能将行复制到多个订阅服务器。有关详细信息,请参阅主题参数化行筛选器中的“设置‘分区选项’”部分。

  3. 单击“确定”。

    将对您指定的筛选器进行分析,并对 SELECT 子句中的表运行该筛选器。如果筛选语句中包含语法错误或其他问题,您将收到通知,并可以编辑筛选语句。

    分析语句后,复制将创建必需的联接筛选器,并在**“筛选表行”页或“筛选行”页的“筛选的表”**窗格中显示这些联接筛选器。如果从新建发布向导生成筛选器,并且尚未为运行此向导的发布服务器配置分发服务器,系统会提示您进行此项配置。

  4. 如果在**“发布属性 - <发布>”对话框中,请单击“确定”**以保存并关闭此对话框。

修改自动生成的筛选器

  1. 在新建发布向导的**“筛选表行”页或“发布属性 - <发布>”“筛选行”页上,从“筛选的表”窗格中选择筛选器,然后单击“编辑”**。

  2. 在**“编辑筛选器”“编辑联接”**对话框中修改筛选器。

  3. 单击“确定”。

删除自动生成的筛选器

  1. 在新建发布向导的**“筛选表行”页或“发布属性 - <发布>”“筛选行”页上,从“筛选的表”窗格中选择筛选器,然后单击“删除”**。

请参阅

概念

联接筛选器
参数化行筛选器

帮助和信息

获取 SQL Server 2005 帮助