Для моего требования, я создаю один временную таблицу, как показано ниже:ALTER TABLE Чтобы добавить несколько столбцов с переменной строкой
CREATE TABLE #ResourceMonthlyTimeReport
(
RowId INT IDENTITY(1,1),
ResourceID UNIQUEIDENTIFIER,
TaskId UNIQUEIDENTIFIER,
ProjectId UNIQUEIDENTIFIER,
-- Some column names containing date should come here.
)
В приведенной выше таблице, дата столбцы должны отображаться, как показано ниже:
[01 Mar, 2013] NVARCHAR(10),
[02 Mar, 2013] NVARCHAR(10),
[03 Mar, 2013] NVARCHAR(10),
... и количество столбцов зависит от значений параметров @FromDate
и @ToDate
Я написал функцию dbo.F_ST_DaysColumns(@FromDate, @ToDate)
, что ge nerates следующего вывода в виде строки:
[01 Mar, 2013] NVARCHAR(10),
[02 Mar, 2013] NVARCHAR(10),
[03 Mar, 2013] NVARCHAR(10)
Теперь, я не понимая, как добавить этот результат к указанной выше временной таблице #ResourceMonthlyTimeReport
.
я сделал что-то вроде этого:
DECLARE @DateColumns AS VARCHAR(MAX)
SET @DateColumns = dbo.F_ST_DaysColumns(@FromDate, @ToDate)
ALTER TABLE #ResourceMonthlyTimeReport ADD @DateColumns
Но, показывая ошибка, как показано ниже:
Msg 102, Level 15, State 1, процедура ST_Proc_Rpt_MonthlyTimeReportSummary, строка 94
Неправильный синтаксис около '@DateColumns'