【发布时间】:2017-02-21 11:36:09
【问题描述】:
我正在尝试改变下面的视图:
ALTER VIEW [dbo].[Win.v_TodayMin365]
AS
declare @tblOut table(Dates Date)
declare @cnt INT = -365
while @cnt < 0
Begin
set @cnt = @cnt + 1;
insert into @tblOut (Dates) values(cast(dateadd(day,@cnt,getdate()) as Date))
END
select * from @tblOut
deallocate @tblOut
deallocate @cnt
GO
这样的代码可以工作(如果我突出显示 AS 和 GO 之间的所有内容并点击执行,我会得到预期的输出),但我无法将其作为 ALTER VIEW 运行。然后,我收到以下错误:
关键字“declare”附近的语法不正确。 期望 '('、SELECT 或 WITH
提前感谢您的任何想法!
【问题讨论】:
-
你需要创建一个存储过程..不是视图..或者可能是表值函数
-
更多解释 - 视图只是预设查询。您无法使用视图更改数据。您只能检索。
标签: sql-server