首页 新闻 搜索 专区 学院

sql server低版本怎么处理sql语句过长

0
[待解决问题]

现在因为业务,有一个sql语句超过了5000个长度,所有回报截断字符串错误,属于sql2008版本,解决办法是使用存储过程,但是这样每一个模块都要加存储过程,有没有什么办法解决

sql
灬丶的主页 灬丶 | 初学一级 | 园豆:4
提问于:2021-09-23 09:10
< >
分享
所有回答(2)
0

使用存储过程就是一个非常好的解决方法, 可以试试将参数用xml传入, 这样就有了统一调用接口.

Shannon | 园豆:611 (小虾三级) | 2021-09-23 13:57

但是每一个业务模块都要添加村粗过程了

支持(0) 反对(0) 灬丶 | 园豆:4 (初学一级) | 2021-09-23 17:25

@灬丶: 每一个业务版快添加存储过程问题不大, 根据实际需要, 有必要的修改, 没必要的不动就好, 我觉得, 大批量涉及数据库数据的逻辑, 使用存储过程/函数等数据库内置的功能比在ORM上写方便多了, 而且后续维护起来比在C#/Java.... 等服务端方便.
我现在大部分存储(CRUD, 包括审批/更改状态.... )都统一调用一个函数(有且只有一个存储过程, 且只使用一个参数就是xml, 你也可以根据需要加一个类别区分更加方便. 且这样子写数据库日志也非常方便). 再根据这个入口读出指定类别后分配给指定的存储过程, 所以, 相当于我在数据库也分了三层结构(BLL, DAL, TABLE). (注: 这个没考虑负载平衡等问题, 某些情况下会加大数据库服务器负荷, 但是, 我相信大部分情况下, 是降低数据库负荷的, 至于取舍, 自己判断) 我觉得中小型公司非常适合这样的处理方式.

支持(0) 反对(0) Shannon | 园豆:611 (小虾三级) | 2021-10-11 14:20

@灬丶: 还有, 我目前使用的是BS结构, 所以, 现在大部分情况下, 我只需要维护HTML代码/JS + 存储过程, 中间的服务端代码几乎不用修改. 维护起来非常方便....

支持(0) 反对(0) Shannon | 园豆:611 (小虾三级) | 2021-10-11 14:23
0

不要一次性提交这么长的sql,如果有循环,可以分割批量提交sql,比如100条提交一次。

华府家丁9527 | 园豆:204 (菜鸟二级) | 2021-09-23 21:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册