我有以下查询:
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
列中,但是我无法使用Insert和Values来完成此操作,因为我使用的是execute sql,是否可以同时插入它们在同一张桌子上?
答案 0 :(得分:0)
用简短的描述和错误的格式代码很难理解您的问题,但是如果我正确地假设您当前的脚本运行良好,那么您还需要将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