在论坛中出现的比较难的sql问题:14(存储过程问题)
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
1、SQL 数据库中的存储过程的参数问题
http://bbs.csdn.net/topics/390640511?page=1#post-396062228
怎么将SQL数据库中的存储过程中的参数既作为输出变量又作为输出变量?
--drop proc proc_test --go create proc dbo.proc_test @in int, @out int out, @in_out int output as select @out = @in + @in_out, --1 + 2 = 3 @in_out = @out + 1 --3 + 1 = 4 go declare @in_p int declare @out_p int declare @in_out_p int set @in_p = 1; set @in_out_p = 2 exec dbo.proc_test @in_p, @out_p out, @in_out_p output select @in_p, --输入参数 @out_p, --输出参数 @in_out_p --输入,输出参数 /* (无列名) (无列名) (无列名) 1 3 4 */
2、在存储过程中的参数问题。
create table #tableTest(id int identity , name varchar(20),age int,) go insert into #tableTest select '小明',23 union all select '小红',28 union all select '小军',27 go select *from #tableTest go create proc procTest @name varchar(20), @age int, @IDs varchar(30) as begin select *from #tableTest where 1=1 end --当我传入@name参数等于 小明,23岁,还有ID在(1,3)的时候 --我怎么可以弄成可选的参数 --比如,name不为空时候 select *from #tableTest where 1=1 and name like '小明' --如果name参数为空的时候,IDs参数不为空的时候 select *from #tableTest where 1=1 and id in(1,3) --请问一下,就有参数不为空的时候存储过程中的SQL追加条件,为空的时候就不追加,这样带可选参数的存储过程怎么写,以及怎么调用,请帮小弟写一个实例
--drop table #tableTest create table #tableTest(id int identity , name varchar(20),age int,) go insert into #tableTest select '小明',23 union all select '小红',28 union all select '小军',27 go select *from #tableTest go create proc procTest @name varchar(20)=null,@age int = null,@IDs varchar(30) = null as declare @sql nvarchar(max); set @sql = ''; set @sql = 'select * from #tableTest where 1 = 1'; set @sql = @sql + case when @name is not null then ' and name like ' + QUOTENAME(@name +'%','''') when @age is not null then ' and age = ' + cast(@age AS varchar) when @ids Is not null then ' and id in (' + @ids +')' else ' ' end --打印出语句 select @sql as '语句' --执行语句 --exec(@sql) go exec procTest /* 语句 select * from #tableTest where 1 = 1 */ exec procTest '小明',23 /* 语句 select * from #tableTest where 1 = 1 and name like '小明%' */ exec procTest @ids = '2,3' /* 语句 select * from #tableTest where 1 = 1 and id in (2,3) */
转载于:https://blog.51cto.com/yupeigu/1368057
在论坛中出现的比较难的sql问题:14(存储过程问题)相关推荐
- 在论坛中出现的比较难的sql问题:33(递归 连续日期问题 )
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. MS- ...
- 在论坛中出现的比较难的sql问题:5(row_number函数 分页、随机返回数据)
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 1.在 ...
- 论坛中的验证码的作用
论坛中的验证码的作用 因为你的WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是 身份欺骗_它通过 在客户端脚 本写入一些代码,然后利用其,客户机在网站,论坛反复登陆,或者攻击者创建一个H ...
- 谈谈WEB开发中的苦大难字符集问题
记得刚做javaweb开发的时候被这个编码问题搞得晕头转向,经常稀里糊涂的编码正常了一会编码又乱了.那个时候迫于项目进度大多都是知其然不知其所以然.后来有时间就把整个体系搞了个遍,终于摸通了来龙去脉. ...
- 在论坛中出现的各种疑难问题:日志收缩问题
最近,在论坛中,遇到了不少疑难的问题,在此特别记录,同时也感谢发帖人的分享.以及其他网友的热心回答. 1.日志暴大,无法收缩,谁来挑战一下! http://bbs.csdn.net/topics/39 ...
- 计算机网络考试难吗,网络教育统考中的计算机考试难不难,
网络教育统考中的计算机考试难不难在线教育统考计算机难考吗,网上教育统考还是比较简单的,其中计算机相对比较容易通过,基本上是一些比较简单的计算机基础,但是不排除这方面不熟练的,需要提前练习,通过率还可以 ...
- 应对计算机领域中后门,网络课程论坛中长尾现象的应对策略——以《计算机应用基础》网络课程为例...
摘要: 进入21世纪以来,互联网就备受关注.由于我国信息设施资源建设稳步推进,互联网的基础更为坚实,发展更为迅速.据权威数据统计,中国至2009年约拥有130万个BBS论坛,数量为全球第一,然而,作为 ...
- 安润网提供的游戏下载,您可以到安润网的论坛中下载,无须注册。
安润网提供的游戏下载,您可以到安润网的论坛中下载,无须注册.www.entrun.com 拳皇KOF97 下载 http://www.entrun.com/forums/thread/380.aspx ...
- 我的世界java版探测矿石_《我的世界》六个关于矿石的隐蔽知识,在峡谷中的矿脉最难挖掘?...
<我的世界>MC关于矿石的六个隐蔽知识,红石数量比钻石多八倍?<我的世界>六个关于矿石的隐蔽知识,在峡谷中的矿脉最难挖掘?在沙盒游戏<我的世界>里面,矿石是一种帮助 ...
最新文章
- 宁波Uber优步司机奖励政策(1月18日~1月24日)
- TensorFlow实战-AlexNet
- android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类
- SecureCRT向多个tab窗口发命令
- 鸿蒙系统受谷歌影响吗,华为鸿蒙系统,会受到人们的欢迎吗?
- OCR文字识别技术总结(三)
- kafka 查看消费者组
- Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL
- Android意图Intent总结(隐式意图,显示意图,意图数据传递,意图数据回传)
- 教你从零开始学习数据库!
- 项目组合、项目集、项目管理实践经验及思考
- mysql开启远程登录
- 在树莓派中解决浏览器自动更新失败弹框遮挡数据的方案
- 双系统linux grub rescue,WindowsUbuntu双系统一键Ghost,提示grub rescue的解决方法
- [USACO2019JAN]Sleepy Cow Sorting题解
- 用 Python 整理 Excel 表格
- 开源工业缺陷数据集汇总,持续更新中(已更新28个)
- 步进电机基础(2.1)- 定子相数的分类、结构、原理
- Android车载系统app性能自动化测试规划
- 从网页到微信小程序开发:一:小程序与普通网页的区别
热门文章
- python内置数据结构_Python内置数据结构(一)
- iis html 空白页,IIS伪静态html静态页无法访问的解决方法
- 华为鸿蒙mate,华为MatePad Pro发布亮相!华为首款鸿蒙平板全新体验!
- mysql存储数组类型的数据_mysql中怎么存储数组
- 南京工业大学 乐学python_[紫金山乐学帮]南工大研究出新型智能吸附剂,能大大降低能耗...
- 小米路由器4a刷第三方固件_小米路由器4A的断网问题初探
- matlab怎么更改图形窗口的句柄值,matlab图形句柄属性
- springboot 文件上传大小配置
- down.php怎么安装,Markdown、phpstudy的安装及配置
- java jackson_Jackson 框架的高阶应用