Мне нужно вставить некоторые данные в временную таблицу.CREATE TABLE с динамической колонкой
У меня есть некоторые условные столбцы, основанные как Salary
, Code
.
Как создать таблицу для условных столбцов? Я не хочу использовать SELECT INTO #tempTable
Вот код:
DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) =''
CREATE TABLE #myTempTable (Id INT, DeptId INT, DeptName VARCHAR(100))
SET @sqlSelect ='INSERT INTO #myTempTable
SELECT EMP.Id, EMP.DeptId, EMP.DeptName'
SET @sqlFrom =' FROM dbo.EMPLOYEE AS EMP'
IF (someCondition)
BEGIN
SET @sqlSelect = @sqlSelect +', EMP.Salary, EMP.Code'
END
SET @sql = @sqlSelect [email protected]
EXEC sp_executesql @sql
Любая помощь/предложение о том, как лучше я могу это сделать?
Update:
Первоначально я использовал SELECT INTO #TempTable
без указания нет столбцов, Как SQL Azure не поддерживает, я решил пойти с INSERT INTO
. Но не знаю, как я могу добавить динамические столбцы в определенной структуре. Его полностью динамический SQL :(
@MahmoudGamal, Обновлен мой вопрос. См. Раздел обновления для получения дополнительной информации. – Billa
Динамические таблицы столбцов нельзя добавлять динамически. Вам нужно, чтобы все столбцы были определены заранее. – dasblinkenlight
@dasblinkenlight, поэтому мне нужно СОЗДАТЬ таблицу, включая Зарплаты, столбцы кода, даже если они не выбраны? Если это так, то какой порядок он будет вставлять, если я выберу только 3 столбца? Извините, я не очень хорош в sql. – Billa