Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS SqlExecute自定义活动_Tfs_Workflow Foundation_Tfsbuild - Fatal编程技术网

TFS SqlExecute自定义活动

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

我用

我希望在活动的参数中传递参数

但我的问题是,SQL脚本中没有注入Te参数,您能帮我一下吗。您是否使用过SqlExecute活动

模板tfs/wwf的“我的生成设计器”编辑器中的“参数”部分:

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我解决了我的问题,我忘记了参数上的简单引号,我编辑了你的答案以便添加简单引号