我今天遇到了一个问题,我想,“嘿,这可能是尝试动态SQL的好时机!”但是,我遇到了问题。简化版可能是......
Declare @Condition VARCHAR(MAX)
SET @Query = 'INSERT INTO #Report_Table
SELECT column1, column2, column3
FROM my_table
WHERE column4 = ''' + @Condition +''''
SET @Condition = 'Blah'
EXEC(@Query)
SET @Condition = 'OtherBlah'
EXEC(@Query)
但是,我发现这不起作用。当我尝试时,它没有给我任何结果。似乎@Condition变量必须在@Query变量之前设置。但通过这样做,我无法使用不同的@Conditions多次运行@Query。有什么方法可以做我想要的吗?
答案 0 :(得分:2)
CREATE TABLE #Conditions (condition varchar(max))
INSERT #Condition VALUES
('Blah'),
('OtherBlah')
INSERT INTO #Report_Table
SELECT column1,column2,column3
FROM my_table
INNER JOIN #Conditions
ON column4 = condition