SQL SERVER 存储过程使用技巧

SQL SERVER 存储过程使用技巧

查询数据

我们在做项目的时候,在想要获得存储过程的执行结果,相信部分的小伙伴都是通过执行项目来看结果,这种方式很难获得我们想要的结果。
也不知道存储过程具体的执行流程是怎么样的,在对于我们在看别人编写的存储过程的时候,只知其一未知其二。
只知道怎么运行的只看到了结果,并不了解存储过程的执行流程,今天我给大家分享一个比较快捷便利的查询方式。

  1. SQL语法:
declare
Id nvarchar(32)='1',
Name nvarchar(32)='猫先生'
begin
select * from UserName where Id=@Id AND Name=@Name
end
提示:存储过程里面用到了 AS 或者 WITH ENCRYPTION 一定要去掉哦!

只要在查询工具里面直接执行就可以得到你的你想要的结果了,不需要再去看程序了,通过这种方式清楚的知道这个存储过程传递那些参数是怎么运行起来的。

  1. 查看执行存储过程

在这里插入图片描述
1.查询工具,找到工具-SQL server Profiler点击进去输入用户和密码连接。
这里的用户就是你连接数据库的用户名和密码。
在这里插入图片描述
弹出以下对话框,点击运行即可。
在这里插入图片描述
2.运行过户出现这个界面,当看到红色箭头标记处为方块红色,表示已经在进行监视了,这里就不需要管它。
在这里插入图片描述
3.最小化,后台运行这个监视工具,这个时候就可以进入到程序里面,随便查看一个功能运行即可。

4.运行完成之后,回到查询工具这个界面,把这个监视停止掉,按住键盘上的ctrl+F,弹出查找的界面输入调用到的存储过程名称,点击查找上一个,监视工具就会把执行过的存储过程,显示到厦门的空白处,里面就能看到存储过程名称、调用的参数、和传递的参数非常的详细。
在这里插入图片描述

RAISERROR类型转换弹出异常

相信很多的小伙伴,会遇到这样的问题,若参数的是时间类型的时候,在进行存储过程调试的时候,raiserror(@date,16,1);
就会抛出异常,提示转换失败,没法得到调试的结果。
这里直接上SQL:

@Date datetime=null
declare @Msg nvarchar(132)
set @Msg=cast(@Date as nvarchar)
raiserror(@Msg,16,1);

存储过程加锁

create procedure 存储过程名称
参数定义....
WITH ENCRYPTION

优化SQL

select 字段1,.... from a with (nolock)
left join b with (nolock) on a.id=b.id
使用with (nolock)数据表不上锁

SQL死锁

查询数据库所存在的死锁条数:
sp_who_lock

杀死死锁
KILL 50(行数)

查询数据库死锁的数据表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type=‘OBJECT’

好了,以上就是我通过经验积累的技巧,希望对你们有帮助!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自在猫先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值