sql - 动态查询使用 2 个参数执行插入
问题描述
我有以下查询:
create table #TempDadosExport
(defprodutoid int, nome varchar(250), Categoria varchar(250),tipoorigem varchar(250),Campanha varchar(250), PopUpId int);
set @sql = 'SELECT * from #Temp where ' + (SELECT Condicao FROM TBL_PDOC_SFA_PopUps_Principal WHERE PopUp_Id = @countTable); insert into #TempDadosExport(defprodutoid, nome, Categoria,tipoorigem,Campanha)
EXECUTE sp_executesql @sql
但我需要添加@countTable
到PopUpId
列,但我不能用插入和值来做,因为我使用的是执行 sql,是否可以在同一个表中同时插入它们?
解决方案
使用弱描述和错误格式的代码很难理解您的问题,但如果我正确假设您当前的脚本运行良好,但您还需要将 PopID 添加到插入中(将其作为参数传递)
DECLARE @sql NVARCHAR(MAX)
DECLARE @CountTable INT
DECLARE @ParamDefinition NVARCHAR(MAX)
CREATE TABLE #TempDadosExport (
defprodutoid INT,
nome varchar(250),
Categoria varchar(250),
tipoorigem varchar(250),
Campanha varchar(250),
PopUpId int)
SET @sql = N'
SELECT
defprodutoid,
nome,
Categoria,
tipoorigem,
Campanha,
@PopUpId
FROM #Temp'
SELECT @SQL = @SQL + N'
WHERE ' + Condicao
FROM TBL_PDOC_SFA_PopUps_Principal
WHERE PopUp_Id = @countTable
SET @ParamDefinition = N'@PopUpID INT'
INSERT #TempDadosExport(defprodutoid, nome, Categoria,tipoorigem,Campanha, PopUpId)
EXECUTE sp_executesql @sql, @ParamDefinition, @PopUpID = @CountTable
推荐阅读
- amazon-web-services - aws redhat root密码是什么
- javascript - 使用 xml2js 将 JSON 文件转换为 XML 时如何删除空标签?
- ajax - Ajax回调不重建表单drupal 8
- sql - 交叉应用的 SQL 替代方案
- html - 文本不会在滚动效果背景图像中垂直居中
- javascript - 如何在 Material ui TablestickyHeader 的表头上应用 css?
- sql - 每天为特定条件下的记录创建一条记录
- visual-studio - 如何更改 SSRS rdl 的 ServerTargetVersion
- regex - 在 where 子句 pyspark 中使用正则表达式加入 2 个数据框
- drools - Drool 用全局变量运行两次,但没有事实?