我无法在SSMS上创建视图。如果我运行查询,它可以正常运行,但是无法将其另存为视图。 这是前几行,因为我认为其余的内容不太相关:
DECLARE @dayName VARCHAR(9)
DECLARE @current INT
DECLARE @previous INT
SET @dayName = DATEName(DW, GETDATE())
IF
(@dayName = 'Saturday')
BEGIN
SET @current = 1
SET @previous = 2
END
ELSE IF
(@dayName = 'Sunday')
BEGIN
SET @current = 2
SET @previous = 3
END
ELSE
IF(@dayName = 'Monday')
BEGIN
SET @current = 0
SET @previous = 3
END
SELECT DATE, BRAND, MODEL, EAN, SUPPLIER_CATEGORY, FAMILY, FAMILY_PER_EAN, SUM(UNITS) AS UNITS
FROM ...
然后,当我尝试将其保存到视图中时,出现以下错误:
关键字“ DECLARE”附近的语法不正确
您能告诉我我做错了吗,谢谢。
答案 0 :(得分:0)
错误消息很清楚,您的语法不正确,请参见 CREATE VIEW 语法和示例。
如果您确实需要使用这些变量,则可以使用 StoredProcedure
,甚至可以使用 function
。
答案 1 :(得分:0)
您是正确的。 VIEW中不允许使用局部变量。
您可以在表值函数中设置局部变量,该变量将返回结果集(就像视图一样)。
答案 2 :(得分:0)
您无法在此脚本上创建View
。看一下以下主题:
您必须在sql服务器中创建Stored Procedre
或Multi-Statement Table-Valued Function
:
CREATE PROCEDURE (Transact-SQL)
CREATE FUNCTION (Transact-SQL)
重点是,您可以在select
上Multi-Statement Table-Valued Function
,但是如果要在Stored Procedure
上选择,则可以使用开放式查询。但是,我建议您不要使用开放式查询。