SQL Incorrect syntax near 错误

案例分析:在我进行Top数据查询的时候用到如下SQL语句,

select top @TopCount * from  MD_DataCubeDataDetail2(nolock)
 Where 1=1  and seqno>=@BeginSeqno and seqno<@EndSeqno and PlanCode=@PlanCode and ReadKey=@ReadKey

运行显示如下错误:

Incorrect syntax near ‘@TopCount’.

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: Incorrect syntax near ‘@TopCount’.
看来SQL语句有问题,我就一直在寻找,这些参数是有SqlParameter集合提供,如果我直接用数值代替这些参数,则程序能够正确运行,看来的确出自End和start的错误,经过不断的调试,和大胆的推测,最后在参数加入了括号,问题解决啦。SQL语句如下:

select top (@TopCount) * from  MD_DataCubeDataDetail2(nolock)
 Where 1=1  and seqno>=@BeginSeqno and seqno<@EndSeqno and PlanCode=@PlanCode and ReadKey=@ReadKey

希望以上分享对初学朋友有些帮助,谢谢!
更多关注付义方技术博客:http://blog.csdn.net/fuyifang
或者直接用手机扫描二维码查看更多博文:

时间: 2024-11-22 17:41:57

SQL Incorrect syntax near 错误的相关文章

ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword &#039;AS&#039;的解决方法_php实例

问题代码如下: <?php class IndexAction extends Action{ public function index(){ /* $Model = new Model(); $test = $Model->query('select top 10 * from f_city'); dump($test); */ $CityModel = M('city'); $CityModel->find(); dump($CityModel); } } ?> 出现的情况是

如何解决SQL SERVER的一致性错误

如果DBCC CHECKDB发现了比较少的一致性错误,可以使用   DBCC UPDATEUSAGE(DatabaseName,"dbo.ObjectName"); 语句逐个针对表或索引中的每个分区更正行.已用页.保留页.叶级页和数据页的计数.但是如果数据库出现大量一致性错误.例如如下所示: DBCC results for 'JO_T_CUTXX'. 消息 2508,级别 16,状态 1,第 1 行 The In-row data USED page count for object

在SQL Server2005中进行错误捕捉

任何程序都可能出现错误,在SQL Server中执行Transact-SQL也不例外.如果在Transact-SQL中发生了错误,一般有两种捕捉错误的方法,一种是在客户端代码(如C#.Delphi等)中使用类似try...catch的语句进行捕捉:另外一种就是在Transact-SQL中利用Transact-SQL本身提供的错误捕捉机制进行捕捉.如果是因为Transact-SQL语句的执行而产生的错误,如键值冲突,使用第一种和第二种方法都可以捕捉,但是如果是逻辑错误,使用客户端代码进行捕捉就不太

深入理解SQL Server 中的错误处理

大多数迭代语言编译器都有内置的错误处理程序(例如,TRY-CATCH语句),开发者们在设计代码的时候可以利用它们.虽然SQL Server 2000的开发者不能够像迭代语言的开发者那样利用内置的工具,但是他们可以用系统变量@@ERROR来设计自己有效的错误处理工具. 引入事务 为了能够掌握在SQL Server 2000中错误处理是如何工作的,你必须首先要理解数据库事务的概念.在数据库术语中,事务就是指作为一个单独的工作单位出现的一系列语句.举个例子来说,假设你有三个语句要执行,事务就可以这样被

批量导入-extjs,上传excel文件后报SyntaxError: syntax error错误,纠结一下午了,请大神

问题描述 extjs,上传excel文件后报SyntaxError: syntax error错误,纠结一下午了,请大神 基本代码如下: form.getForm().submit({ url : importWhiteUserUrl, method : 'POST', success : function(form, action) { Ext.MessageBox.alert('信息', action.result.showmessage); _this.loadData(); win1.c

依赖-安装SQL,出现WMI错误

问题描述 安装SQL,出现WMI错误 安装SQL2008 出现WMI错误,依赖服务或组无法启动,求帮助!急!!!!!!!! 解决方案 http://q.cnblogs.com/q/34444/不知能不能解决. 解决方案二: 是不是之前安装的sql数据库没有卸载干净 解决方案三: 看下系统应用程序日志,看看有什么错误 解决方案四: 看看注册表, 是不是以前的sql数据库没有卸载干净

ORA-00604: 递归SQL级别1出现错误, ORA-02067:要求事务处理或保存回退点

问题描述 ORA-00604: 递归SQL级别1出现错误, ORA-02067:要求事务处理或保存回退点 报的错如题: ORA-00604: 递归SQL级别1出现错误 ORA-02067:要求事务处理或保存回退点 A服务器oracle建立dblink,存储过程的内容是:往B服务器中oracle的表里插入数据. 在客户端访问调用此存储过程的时候报以上错误. 目前为了报错不显示在客户端只能用rollback,但是这样的话数据就插入不进去了. 代码如下,请大神们帮帮忙: --[游标查询/插入] dec

date-java Date转换成sql Date出现时间错误的问题

问题描述 java Date转换成sql Date出现时间错误的问题 SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = null; d = format.parse(newsDate); java.sql.Date date = new java.sql.Date(d.getTime()); 代码是这样的. java Date数据格式是 2015-10-08 09:21:33

web开发-动态sql实现模糊查询错误

问题描述 动态sql实现模糊查询错误 public List findByCondition(String readerTypeId, String barcode, String name, final int page, final int pageSize) throws DAOException { final List params = new ArrayList(); final String hql = createFindHQL(readerTypeId, barcode, na