TFS SqlExecute自定义活动
我用 我希望在活动的参数中传递参数 但我的问题是,SQL脚本中没有注入Te参数,您能帮我一下吗。您是否使用过SqlExecute活动 模板tfs/wwf的“我的生成设计器”编辑器中的“参数”部分:TFS SqlExecute自定义活动,tfs,workflow-foundation,tfsbuild,Tfs,Workflow Foundation,Tfsbuild,我用 我希望在活动的参数中传递参数 但我的问题是,SQL脚本中没有注入Te参数,您能帮我一下吗。您是否使用过SqlExecute活动 模板tfs/wwf的“我的生成设计器”编辑器中的“参数”部分: New String(5) { "BackupFilePath = F:\MSSQL10.IS_CLTLIVE_DE\DUMP\ClearProdDump\CP.dmp", "LogicalDataFile = CP_Data01", "DataFilePath = F:\MS
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 ))
在阅读该活动的代码时,似乎需要将参数指定为
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代码中用引号括住参数值。非常感谢jesse,为了重命名securityError的参数,我进行了编辑:Tools\TeamBuild\RestoreDatabaseForTesting.sql。必须声明标量变量“@DatabaseName”。。堆栈跟踪:位于TfsBuildExtensions.Activities.SqlServer.SqlExecute.ExecuteFiles()的TfsBuildExtensions.Activities.SqlServer.SqlExecute.ExecuteSql()的TfsBuildExtensions.Activities.BaseCodeActivity.Execute(CodeActivityContext上下文)。内部异常:必须声明标量变量“@DatabaseName”。请尝试将生成日志设置为详细,实际执行的语句应记录到生成日志中。我不想自己安装和调试活动。我只是提取了替代参数的代码,并为其创建了一个小测试,上面的参数应该与上面的语句一起工作。如果他们没有,那么一定有什么你没有告诉我们的。谢谢jesse我解决了我的问题,我忘记了参数上的简单引号,我编辑了你的答案以便添加简单引号