azure中的Dacpac部署将值引用为无效的列名



我正在尝试部署dacpac,我正在传递参数$(name)="dev"

和预部署脚本中的代码如下:

DECLARE @SQL VARCHAR(254);
BEGIN
SET @SQL = 'INSERT INTO [dbo].[tblTest] (Id, name) VALUES (2, '''+$(name)+''');'
EXEC(@SQL)
END

现在当运行上面的查询时,我得到"错误SQL72014: .Net SqlClient数据提供者:Msg 207, Level 16, State 1, Line 1无效的列名'dev'">

这里我不确定是什么错了。需要帮助修复

DACPAC部署使用sqlcmd变量,因此您不必将其视为SQL变量。你不需要把它们连接起来。这应该可以工作:

DECLARE @SQL VARCHAR(254);
BEGIN
SET @SQL = 'INSERT INTO [dbo].[tblTest] (Id, name) VALUES (2, ''$(name)'');'
EXEC(@SQL)
END

最新更新