Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 关键字';宣布';创建视图时_Sql_Sql Server_Ssms - Fatal编程技术网

Sql 关键字';宣布';创建视图时

Sql 关键字';宣布';创建视图时,sql,sql-server,ssms,Sql,Sql Server,Ssms,在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

在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”附近的语法不正确


您能告诉我我做错了什么吗。谢谢。

错误信息很清楚,您的语法不正确,请参阅语法和示例


如果您确实需要使用这些变量,您可以使用,甚至是

错误消息很清楚,您的语法不正确,请参阅语法和示例


如果您真的需要使用这些变量,您可以使用,甚至可以使用

您是正确的。视图中不允许使用局部变量

可以在表值函数中设置局部变量,该函数返回结果集(与视图一样)


你是对的。视图中不允许使用局部变量

可以在表值函数中设置局部变量,该函数返回结果集(与视图一样)


无法在此脚本上创建
视图。请看以下主题:

您必须在sql server中创建
存储过程
多语句表值函数


关键是,您可以在
多语句表值函数
上选择
,但如果要在
存储过程
上选择,则必须使用open query。但是,我建议您不要使用open query。

您不能在此脚本上创建
视图。请看以下主题:

您必须在sql server中创建
存储过程
多语句表值函数


关键是,您可以在
多语句表值函数
上选择
,但如果要在
存储过程
上选择,则必须使用open query。但是,我建议您不要使用open query。

您不能在视图中声明变量。改为使用
存储过程
函数
。您是否在视图中声明了这些变量?如果是这样,您就不能这样做,因为视图总是期望
SELECT
语句,您可以改为使用函数。SQL Server中的视图不支持变量。只能使用单个SELECT语句(包括通用表表达式)。不能在视图中声明变量。改为使用
存储过程
函数
。您是否在视图中声明了这些变量?如果是这样,您就不能这样做,因为视图总是期望
SELECT
语句,您可以改为使用函数。SQL Server中的视图不支持变量。只能使用单个SELECT语句(包括通用表表达式)。