我正在尝试使用一些动态 sql。我已经生成了 100 多个参数,为了加快速度,我尝试使用动态 sql 仅将值插入到我必须基于从其他表中检索到的信息的表中。我尝试了很多事情,比如添加演员等。
我的意思的例子:
DECLARE @var1 NVARCHAR(MAX)
-- Loop through and add various values
SET @var1 = @var1 + @parameterName
-- The parameter name is retrieved from a table that holds this information
问题是,当我将类似于“@myFirstParameter”的参数名称添加到我的最终表达式中时,如下所示:
DECLARE @finalString NVARCHAR(MAX)
SET @finalString = 'INSERT INTO myTableName ([myFirstParameter]) VALUES (@myFirstParameter)'
EXEC(@finalString)
“@myFirstParameter”没有被它的值替换,我收到以下错误:必须声明标量变量“@myFirstParameter”。
有谁知道从参数的字符串名称到实际值的方法?我试图避免对所有值进行硬编码,并且我尝试的任何解决方法都失败了,并且给我的错误似乎比我上面所说的要糟糕得多。