代码之家  ›  专栏  ›  技术社区  ›  Fetchez la vache

未使用Redgate SqlCompare筛选器,导致问题

  •  1
  • Fetchez la vache  · 技术社区  · 13 年前

    我有几个保存的项目,我正在从命令行使用这些项目来比较数据库和TFS。 我的一个数据库有大量与asp.net相关的表,这些表的名称中都包含“aspnet”,我正在尝试将这些表过滤掉。

    我通过.scp文件中的gui创建了过滤器,但它似乎没有被选中。(从scp文件中提取。)

    <Table version="1"> 
      <Include>False</Include> 
      <Expression>(@NAME LIKE 'xx%') OR (@NAME LIKE 'aspnet%')</Expression> 
    </Table> 
    

    然后,我通过GUI再次创建了一个单独的过滤器,并使用/filter开关从命令行调用它,但它再次没有被使用。(摘自.scpf文件)

    <表格版本=“1”>
    <包括>错误</包括>
    <表达式>(@NAME LIKE'xx%')或(@NAME LIKE'aspnet%')</表达式>
    </表>
    

    如果我将/filter开关更改为指向一个不存在的文件,那么它确实会出错,所以推测它正在使用filter开关,并且它确实列在输出中。。

    Argument /filter has value 'DatabaseNameFilter.scpf' 
    

    请问我这里少了什么?

    这是完整的命令行

    "C:\Program Files (x86)\Red Gate\SQL Compare 10\sqlcompare.exe" /project:"C:\Users\CIUser\Documents\SQL Compare\SharedProjects\MyDB (Head) v MyDB.scp" /assertidentical /password1:mypassword /include:identical /Report:myreport.html /ReportType:Simple /Options:Default,ForceColumnOrder,IgnoreCollations,oec,IncludeDependencies /verbose /force /filter:MyFilter.scpf >f.txt 
    
    1 回复  |  直到 13 年前
        1
  •  0
  •   Wonko    13 年前

    看起来,如果您在UI中显式选择一个对象并保存SQL比较项目,它将覆盖筛选器。例如,使用示例数据库,创建一个项目并选择要包含的所有对象,然后保存该项目。创建一个新的过滤器,排除以“价格”结尾的对象并保存过滤器。当您使用命令行使用项目+过滤器创建报表时,报表将包含表“WidgetPrices”。

    返回到项目,关闭过滤器并取消选择WidgetPrices表,使其不再包含在项目中并保存,然后对该项目再次运行命令行,WidgetPrice不再在报告中。