原文:解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题

今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar 的长度。 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的。 开始想到的方法是将里层的select语句抽出来,用exec strInnerSql 执行,将查询胡来的数据放到临时表中,在 s中用临时表获取数据,结果以时报告终 错误原因:执行 s语句的时候找不到执行exec s ...

2014-10-15 16:09 1 3038 推荐指数:

查看详情

SQL Server数据库存储过程中拼接字符串注意的问题

  在SQL Server数据库书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接字符串' 查询出结果。 先看一段代码: 然后调用该存储过程:EXEC Sp_GetStudentList 1。结果如下: 运行失败 ...

Sat Sep 20 01:55:00 CST 2014 0 5519
存储过程中拼接字符串

1.将查询数据插入临时表 最开始我这么写的 报错 对象名'#tmp'无效 可以改成这样子 即先创建一个临时表,然后把数据插入临时表。 可以直接使用全局临时表实现这个功能 2.将查询结果保存到变量 开始我是这么写的 会报 ...

Wed Apr 08 02:14:00 CST 2015 0 8624
在mysql存储过程中拼接sql解决in的字段类型不匹配问题

一个朋友问我一个问题,他写了一个存储过程,并在存储过程调用了另外一个自定义的函数。该函数返回类型如'1,34,56'的字符串,并将该字符串作为存储过程的select的id条件。 select语句in里的是函数返回的带引号的字符串,而系统表里id字段是整形,所以需要拨去单引号 ...

Fri Jun 02 05:19:00 CST 2017 0 2692
SQL Server存储过程中字符串前加N的含义

使用方法: N'字符串' 解释: 意思为后面的数据类型为NChar或者NVarchar 使用N前缀 在服务器上执行的代码(例如在存储过程和触发器)显示的Unicode字符串常量必须以大写字母N为前缀,如果不使用N前缀,字符串将转换为数据库的默认代码页,这可能导致不识别某些字符 ...

Thu Jan 17 23:33:00 CST 2019 0 790
存储过程中拼接sql并且参数化

c#调用如下: 上面的存储过程做了参数化处理,可以避免sql注入,相比直接拼接(SET @strWhere += ' and [userid] = ' +convert(varchar,@userid),然后用EXEC()方法执行),更高效、更安全 ...

Wed Jan 09 00:38:00 CST 2019 0 2347
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM