Внутреннее соединение на динамическом столе
Я просмотрел каналы, чтобы увидеть, есть ли ответ на этот вопрос, но мне не повезло. Я хочу объединить результаты этого вывода в другую таблицу, используя INNER JOIN. Я пытался сделать это, как я знаю лучше, но постоянно получаю сообщение об ошибке. Есть ли простой кусок кода для этого, чтобы работать?
Я видел в других статьях, что некоторые предлагают, чтобы вы заполнили результаты этого запроса во временную таблицу, а затем соединились из этого за пределами оператора @SQL, но опять же мне не повезло создать временную таблицу в этом синтаксисе.
SELECT @Table_Name = Result_ID FROM #TmpResults
SET @SQL = 'SELECT * From [SERVER].[DATABASE].[dbo].'+@Table_Name
заранее спасибо
2 ответа
Почему бы вам не продолжить оператор SQL в созданной вами переменной.
SELECT @Table_Name = Result_ID FROM #TmpResults
SET @SQL = 'SELECT * From [SERVER].[DATABASE].[dbo].'+ @Table_Name + ' INNER JOIN dbo.Table2 ON dbo.Table2.Id = ' + @Table_Name + '.Table2Id'
Вы не можете сохранить их во временную таблицу, потому что она не видна для SQL за пределами динамического запроса SQL при его выполнении.
Однако вы можете сохранить на постоянный стол.
SELECT @Table_Name = Result_ID FROM #TmpResults
SET @SQL = 'SELECT * INTO NewTable From [SERVER].[DATABASE].[dbo].'+@Table_Name