2013-04-05 52 views
1

我有一些保存的項目,我正在使用從命令行比較數據庫與TFS。 我的一個數據庫有大量的asp.net相關表,這些表在表名中都包含「aspnet」,我試圖過濾掉這些表。Redgate SqlCompare過濾器沒有被使用,導致問題

我通過.scp文件中的gui創建了過濾器,但好像它沒有被拾取。 (摘自SCP文件..)

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

我然後通過GUI創建一個單獨的過濾器再次,和上午從與/過濾器開關的命令行調用它,但同樣它不被用過的。 (提取從.scpf文件)

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

如果我的/過濾器開關點改變到一個不存在的文件確實錯誤,所以推測它正在使用的過濾器開關,實際上它是在所列出的輸出..

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 

回答

0

看起來,如果你明確選擇UI中的對象並保存SQL比較項目,將覆蓋過濾器。例如,使用示例數據庫創建一個項目並選擇所有要包含的對象,然後保存該項目。創建一個新的過濾器並排除以「價格」結尾的對象並保存該過濾器。當您使用項目+過濾器使用命令行創建它時,報告將包含表格「WidgetPrices」。

回到項目中,關閉過濾器並取消選擇WidgetPrices表,使其不再包含在項目中並保存它,然後再次使用該項目運行命令行,並且WidgetPrices不再處於那個報告。