热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

存储过程内的')'附近的语法不正确-IncorrectSyntaxNear')'insidestoredprocedure

Iamcurrentlyreceivingthefollowingerrorwhentryingtorunmydynamicsqlbelow;istheresomet

I am currently receiving the following error when trying to run my dynamic sql below; is there something I'm missing that's causing this error to be thrown?....

我正在尝试在下面运行我的动态SQL时收到以下错误;有什么我错过了导致这个错误被抛出的东西吗?....

Msg 102, Level 15, State 1, Procedure calc, Line 32 Incorrect syntax near ')'.

消息102,级别15,状态1,过程计算,第32行')'附近的语法不正确。

    CREATE PROCEDURE calc(@pC INT, @Array1 varchar(500) ,@pT VARCHAR(15), @pTN VARCHAR(15), @pPK BIGINT, @pCI FLOAT, @pFK BIGINT)
        AS 
        BEGIN
        --calculate peer statistics for level of peer group   
        DECLARE @sMI FLOAT, @num25 FLOAT, @num75 FLOAT, @num25V FLOAT, @num75V FLOAT
        DECLARE @sMD FLOAT, @sME FLOAT, @sIQ FLOAT, @sSD FLOAT, @sMin FLOAT, @sMax FLOAT, @sDiff FLOAT
        DECLARE @sLK BIGINT, @sNL BIGINT, @sNI BIGINT
        DECLARE @sUNC NVARCHAR(5)
        DECLARE @SQL NVARCHAR(MAX)


SET @SQL =  'IF ('+@pFK+' = 0) 
                BEGIN
                    INSERT INTO '+@pTN+' (fldBA) VALUES (2); 
                END
            ELSE  
                BEGIN  
                    IF ((SELECT COUNT(*) FROM '+@pTN+' WHERE fldFPK = '+@pFK+' and fldPK='+@pPK+' and fldCIA='+@pCI+') > 0)
                        BEGIN           
                            UPDATE '+@pTN+' SET fldAVA = 0, fldPK = '+@pPK+', fldDTA = GETDATE(), fldCIA = '+@pCI+',
                            fldME = '+@sME+',fldMD = '+@sMD+',fldIQ = '+@sIQ+',fldSD = '+@sSD+', fldND = '+@pC+' + 1,
                            fldNI = '+@sNI+', fldNL = '+@sNL+', fldMin = '+@sMin+', fldMax = '+@sMax+',fldUNC = '+@sUNC+'
                            WHERE fldFPK = '+@pFK+' and fldPK = '+@pPK+' and fldCIAc = '+@pCI+'
                        END
                    ELSE
                        BEGIN               
                            INSERT INTO '+@pTN+' (fldFPK, fldAVA, fldPK, fldDTA, fldCIA,fldMean,fldMD,fldIQ,fldSD,fldND,fldNI,fldNL,fldMin,fldMax,fldUNC) VALUES('+@pFK+', 0, '+@pPK+', GETDATE(), 
                            '+@pCI+', '+@sME+', '+@sMD+','+@sIQ+','+@sSD+','+@pC+'+ 1, '+@sNI+', '+@sNL+', '+@sMin+', '+@sMax+', '+@sUNC+')
                        END
                END'

exec @SQL

1 个解决方案

#1


3  

I copied and pasted the procedure in SQL Server Management Studio. You don't have any syntax error. You have just to close the statement CREATE PROCEDURE with an END, because you started it with a BEGIN. You can do that in this way:

我在SQL Server Management Studio中复制并粘贴了该过程。您没有任何语法错误。您只需要使用END关闭语句CREATE PROCEDURE,因为您使用BEGIN启动它。你可以这样做:

CREATE PROCEDURE calc(@pC INT, @Array1 varchar(500) ,@pT VARCHAR(15), @pTN VARCHAR(15), @pPK BIGINT, @pCI FLOAT, @pFK BIGINT)
    AS 
    BEGIN

    /* BODY OF PROCEDURE */

    SET @SQL = ''

    EXEC @SQL

    END 

推荐阅读
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
author-avatar
天使不打雨伞_962
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有