Есть ли способ добавить столбец в таблицу, но я хочу, чтобы заголовок был датой, и каждый новый добавленный столбец будет иметь заголовок столбца на следующий день,SQL Server 2008 ALTER TABLE добавить столбец со специальным столбцом
SET @date1 = @date1 + 1
То, что я хочу, чтобы таблица выглядеть это, когда дата на вершине новый столбец для каждого дня петель сценария:
StoreID StoreName 02/01/12 03/01/12 04/01/12
1234 Coles1 7512 8574
1235 Coles2 7210 8441
1236 Coles3 4845 5448
Когда я запускаю сценарий, я получаю следующее сообщения об ошибках:
Msg 170, Level 15, State 1, Line 1
Строка 1: Неверный синтаксис рядом с '@Column'.
Msg 170, Level 15, State 1, Line 1
Линия 1: Неправильный синтаксис рядом с полем «Колонна».
Вот мой сценарий:
DECLARE @date datetime
DECLARE @date1 datetime
DECLARE @date2 datetime
DECLARE @Column varchar(8)
SET @date = '02 Jan 2012'
SET @date1 = '02 Jan 2012'
SET @date2 = '08 Jan 2012'
SET @Column = CONVERT(VARCHAR(8), @date1, 3)
IF NOT EXISTS (SELECT * FROM sysobjects WHERE xtype = 'U' AND name = '#vl_temp_trans')
BEGIN
CREATE TABLE #vl_temp_trans
(StoreID INT,
StoreName VARCHAR(100),
@Column MONEY) ----> column name to be date "@Column)
END
WHILE (@date1 <= @date2)
BEGIN
SET @Column = CONVERT(VARCHAR(8), @date1, 3)
ALTER table #vl_temp_trans
ADD @Column MONEY ----> column name to be date "@Column"
Insert into #vl_temp_trans (storeID, storeName, @Column)
select storeId, storeName, TotalDailyTransactions
from daily_trans t1 (nolock)
full outer join outlets t2 (nolock) on t1.StoreID = t2.StoreID
where DailyEnd = @date1 + 1
SET @date1 = @date1 + 1
END
Знаете ли вы, почему я внес изменения в ваш вопрос? Почему вы отменили их? –
Также форматирование и читаемость в стороне, в какой таблице есть столбцы «TotalDailyTransactions» и «DailyEnd»?Почему ни один из ваших столбцов не префикс с их псевдонимом таблицы, чтобы избежать неоднозначных ошибок имени столбца (и вопросов от нас)? –
проверьте обновленный код ..., который может решить вашу проблему ..... –