识别SQL Server存储过程中的错误-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

识别SQL Server存储过程中的错误

2020-01-04 15:29:31 266 1

我正在使用SQL Server 2016

通过我的存储过程,我试图找到Recommendationsper 的数量CityID,并且遇到了语法相关的麻烦。我在底部列出了错误消息。**

DROP PROCEDURE IF EXISTS [Kittens_Dogs_AGGREGATE].[dbo].[sp_RecommendationsPerSite]

USE [Kittens_Dogs_AGGREGATE]
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:      Tom Brady
    -- Create date: 12/27/2019
    -- Description: This script is to check for the amount of recommendations per site
    -- =============================================
    CREATE PROCEDURE [dbo].[sp_RecommendationsPerSite] 
        -- Add the parameters for the stored procedure here
 DECLARE @CityID NVARCHAR(50),
         @RunDate DATETIME = CAST(GETDATE() as date),
         @DepartureTime DATETIME,
         @ApplesOranges NVARCHAR(250),
         @RollerCoaster NVARCHAR(50))
    AS
    BEGIN
        SET NOCOUNT ON;
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SELECT @RApplesOranges AS ApplesOranges, Count(DISTINCT @RollerCoaster) AS RollerCoaster
        FROM [Kittens_Dogs_AGGREATE].[dbo].[Recommendations] b
        WHERE @CityID = 210
        AND cast(@DepartureTime as date) = CAST(GETDATE() AS NVARCHAR)
        AND a.ApplesOranges = b.ApplesOranges
        AND cast(@DepartureTime as date) <> cast(@RunDate as date) as '2019-12-27' -- ,(select count(DISTINCT RollerCoaster)
        FROM [Kittnes_Dogs_AGGREGATE].[dbo].[Recommendations] b
        WHERE CityID = 210
        AND cast(@DepartureDate as date) = CAST(GETDATE() AS NVARCHAR)
        AND a.ApplesOranges = b.ApplesOranges
        AND cast(@DepartureDate as date) <> cast(@RunDate as date)) as CAST(GETDATE() - 1 AS NVARCHAR)
        FROM [Kittens_Dogs_AGGREGATE].[dbo].[Recommendations] a
        WHERE CityID = 210
        GROUP BY ApplesOranges
        ORDER BY 1

    END
    GO

错误讯息

消息156,级别15,状态1,过程sp_RecommendationsPerSite,行3 [Batch Start Line 22] 关键字'DECLARE'附近的语法不正确。

消息102,级别15,状态1,过程sp_RecommendationsPerSite,行7 [Batch Start Line 22] ')'附近的语法不正确

取消 提交回答
全部回答(1)
  • 祖安文状元
    2020-01-04 15:29:37

    这里发生了很多事情。

    您的第二个错误是在参数定义的最后一行:@RollerCoaster NVARCHAR(50))结尾处有一个额外的')'。

    接下来,您的select语句将失败,因为您有多个FROM和WHERE子句。您似乎已尝试将其注释掉,但--仅注释了一行。

    0 0
相关问答

1

回答

若SQL 语句有缓存的计划,则根据用户选择的不同执行计划管理策略来执行,其执行逻辑是怎么样的?

2022-09-21 15:43:12 25浏览量 回答数 1

1

回答

查询的SQL语句复杂吗?只是简单的过滤条件,还是有Group by 之类的?

2022-09-14 11:12:46 43浏览量 回答数 1

1

回答

SQL语句的查询解析完成了语句合法性、解决了名字和引用的问题后,生成的逻辑查询计划可以直接执行吗?

2022-09-08 16:31:51 52浏览量 回答数 1

1

回答

SQL语句的查询解析完成了语句合法性、解决了名字和引用的问题后,生成的逻辑查询计划是什么意思?

2022-09-08 16:29:42 49浏览量 回答数 1

1

回答

SQL语句的查询解析完成了语句合法性、解决了名字和引用的问题后,生成的逻辑查询计划是做什么用的?

2022-09-08 16:26:29 50浏览量 回答数 1

1

回答

多数DBMS是通过什么工具来生成词法与文法解析器,以完成检查SQL语句的合法性的?

2022-09-08 16:25:49 46浏览量 回答数 1

1

回答

SQL语句如何做到查询解析?

2022-09-08 16:25:06 41浏览量 回答数 1

1

回答

SQL 语句的执行过程是怎么样的?

2022-09-08 16:24:56 38浏览量 回答数 1

1

回答

SQL语句在执行过程中,需要经过哪些步骤?

2022-05-08 19:29:44 106浏览量 回答数 1

1

回答

MySQL 的SQL语句优化问题

2016-02-27 13:54:53 2848浏览量 回答数 1
0
文章
1898
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载