0
我想創建一個存儲的過程,將動態地添加與今天的日期列。原因是因爲我每天都會爲每個項目獲得一個新計數的新文件。他們希望白天保持運行的歷史總數。這是我認爲我可以做到這一點的唯一方法,除非你們中有人對此模式設計有任何建議。謝謝。動態添加列與今天的日期
我想創建一個存儲的過程,將動態地添加與今天的日期列。原因是因爲我每天都會爲每個項目獲得一個新計數的新文件。他們希望白天保持運行的歷史總數。這是我認爲我可以做到這一點的唯一方法,除非你們中有人對此模式設計有任何建議。謝謝。動態添加列與今天的日期
這裏是您的疑問:
IF EXISTS (select * from dbo.sysobjects where id = object_id(N'[usp_AddCollumByDate]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE usp_AddCollumByDate
GO
create procedure usp_AddCollumByDate
as
begin
declare @sql varchar(max);
declare @toDay varchar(20)=CONVERT(varchar(10),GETDATE(),112);
set @sql = 'ALTER TABLE MyTable ADD D' + @toDay + ' varchar(max); '
print @sql
EXECUTE(@sql);
end
exec usp_AddCollumByDate
它每天都會添加列(今天的例子及其附加):
ALTER TABLE MyTable ADD D20160920 varchar(max);
現在你仔細聽:
D
在今天的日期之前。這是因爲 20160920
是一個INVALID
列名稱。你必須以字母開頭的列 (例如AN3,A33 ...)yyyymmdd
風格112
,你 不能使用11
,111
,10
和一些其他的風格因爲它給出日期 與-
像mm-dd-yyyy
它是一個INVALID
列名稱。您 不能在列名稱中使用-
。 Here is more style
,嘗試 使用yyyymmdd
,yymmdd
風格
'插入到表中的值(COL1,COL2,GETDATE())'?需要你的更多細節。 – artm
爲什麼不只是每天添加一行,並將日期作爲一列並將總數作爲另一列來運行? –
你也許可以用一個標準化的桌子和一個支點查詢 – Paparazzi