我有几个已保存的项目,我正从命令行使用它们来比较数据库和TFS。我的一个数据库有大量与asp.net相关的表,这些表的名称中都包含"aspnet“,我正在尝试过滤掉这些表。
我通过.scp文件中的图形用户界面创建了过滤器,但它似乎没有被拾取。(摘自scp文件。)
<Table version="1">
<Include>False</Include>
<Expression>(@NAME LIKE 'xx%') OR (@NAME LIKE 'aspnet%')</Expression>
</Table> 然后,我通过图形用户界面再次创建了一个单独的筛选器,并使用/filter开关从命令行调用它,但仍然没有使用它。(摘自.scpf文件)
<Table version="1">
<Include>False</Include>
<Expression>(@NAME LIKE 'xx%') OR (@NAME LIKE 'aspnet%')</Expression>
</Table> 如果我将/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 发布于 2013-04-08 16:57:47
看起来,如果您在UI中显式选择一个对象并保存SQL Compare项目,它将覆盖筛选器。例如,使用示例数据库,创建一个项目并选择要包含的所有对象,然后保存该项目。创建一个新筛选器,排除以"Prices“结尾的对象,然后保存筛选器。然后,当您使用命令行使用项目+过滤器创建报告时,报告将包含表"WidgetPrices“。
返回到项目,关闭筛选器并取消选择WidgetPrices表,使其不再包含在项目中并保存它,然后使用该项目再次运行命令行,WidgetPrices不再出现在报告中。
https://stackoverflow.com/questions/15837385
复制相似问题