2014-01-27 87 views
0

我用SqlExecute activity of Build ExtensionTFS SqlExecute自定義活動

我希望通過PARAMS在我的活動

的論點,但我的問題是TE參數未注入SQL腳本,你可以幫我請。你有使用過SqlExecute活動嗎?

參數部分的編輯,模板的我的體型設計TFS /世界自然基金會:

New String(5) { 
    "BackupFilePath = F:\MSSQL10.IS_CLTLIVE_DE\DUMP\ClearProdDump\CP.dmp", 
    "LogicalDataFile = CP_Data01", 
    "DataFilePath = F:\MSSQL10.IS_CLTLIVE_DE\data\", 
    "LogicalLogFile = CP_TLog01", 
    "LogFilePath = F:\MSSQL10.IS_CLTLIVE_DE\log\", 
    "DatabaseName = AghilasCP_Tmp" 
} 

我Script.sql

IF EXISTS (SELECT name FROM sys.databases WHERE name = $(DatabaseName)) 

回答

2

閱讀該活動的代碼,看來你需要指定該參數

New String(5) { 
    "@BackupFilePath='F:\MSSQL10.IS_CLTLIVE_DE\DUMP\ClearProdDump\CP.dmp'", 
    "@LogicalDataFile='CP_Data01'", 
    "@DataFilePath='F:\MSSQL10.IS_CLTLIVE_DE\data\'", 
    "@LogicalLogFile='CP_TLog01'", 
    "@LogFilePath='F:\MSSQL10.IS_CLTLIVE_DE\log\'", 
    "@DatabaseName='AghilasCP_Tmp'" 
} 

和聲明爲

IF EXISTS (SELECT name FROM sys.databases WHERE name = @DatabaseName) 

'='周圍沒有空格,並且有一個唯一的名字作爲參數名,這讓我感到有些害怕,我親自編寫了這個活動,並且引用了參數值參數數組或在SQL代碼中。

+0

非常感謝jesse,我爲了安全重命名參數進行編輯 –

+0

錯誤:Tools \ TeamBuild \ RestoreDatabaseForTesting.sql。必須聲明標量變量「@DatabaseName」..堆棧跟蹤:在TfsBuildExtensions.Activities.SqlServer.SqlExecute.ExecuteFiles() at TfsBuildExtensions.Activities.SqlServer.SqlExecute.ExecuteSql() at TfsBuildExtensions.Activities.BaseCodeActivity.Execute(CodeActivityContext上下文)。內部異常:必須聲明標量變量「@DatabaseName」。 –

+0

嘗試將生成日誌記錄爲詳細信息,應將執行的實際語句記錄到生成日誌中。我不傾向於自己安裝和調試活動。 – jessehouwing