SQLSERVER2005调试存储过程跟函数

以前一直用Toad for SqlServerDatabase.Net来调试SQL2005的存储过程跟函数

Toad for SqlServer介绍以及下载:toad for sqlserver5.7

Database.Net介绍以及下载:Database .NET 8.0 发布,数据库管理工具

今日发现原来上面两个工具的功能,微软的Visual Studio也可以做到

本来微软自家的Visual Studio就支持调试SQLSERVER的存储过程跟函数,我竟然用了第三方工具,而且这些第三方工具也不是很好用

微软在SQLSERVER Management Studio2008里才集成了TSQL调试功能,那么SQL2005只有用VS来调试了


幸亏VS调试TSQL也不是很复杂

我的环境:VS2008 TeamSystem , SQL2005 个人开发版 , Windows7 Ultimate

我使用的工具还是比较落后

step1:打开Visual Studio2008,然后点击菜单 视图-》服务器资源管理器

最好以管理员身份登录操作系统,打开VS的时候一般就以管理员的身份运行了

step2:在数据连接那里 右键-》添加连接

step3:数据源那里选择SQLSERVER就可以了

step4:选择你本地的数据库不要选择局域网或者广域网里的数据库,因为Windows安全问题的原因你是调试不了的只能执行

joe是我的笔记本电脑的计算机名,joe-homepc是局域网里另一台计算机的计算机名

选择好了之后点击“测试连接” ,没有问题就可以点击“确定”按钮了

step5:打开存储过程或者函数的树节点,然后找一个存储过程或者函数进行调试

step6:调试函数,调试的时候无论是存储过程还是函数,都会直接跳过变量定义部分进入函数或存储过程主体来执行

只有当TSQL语句运行的时候才会中断到断点的地方

step7:调试存储过程

当你调试远程SQL服务器的时候,VS就会报错,就像你写C#的时候是调试不了远程电脑上的代码的

不过个人觉得调试如果能看到表数据就最好了,调试的时候varchar nvarchar int datetime这些数据都可以看到

但是表的内容,无论是临时表,表变量,表都是无法看到数据的,如果你想查看中途我插入到@temp表变量里的数据是看不到的

包括Toad for SqlServer 这些工具也是没办法看到的,个人觉得这是一个缺点


最后给大家一个函数,这个函数的作用就是切割字符串,大家可以用来调试一下

 1 CREATE     FUNCTION [dbo].[SplitString] (@string varchar(6000))
 2 RETURNS @temp TABLE(substr varchar(30))
 3 AS
 4 begin
 5    -- 用法 select * from SplitString('1, 2, 3')
 6 
 7    declare @str varchar(6000)
 8    declare @i int
 9 
10    set @i=0
11    while(@i<len(@string))
12    begin    
13        if(substring(@string,@i,1)=',')
14         begin
15             select @str=substring(@string,1,@i-1)
16             set @string=substring(@string,@i+1,len(@string))
17                   set @i=1
18             insert into @temp values(ltrim(@str))
19     
20            end
21        else
22            begin 
23             set @i=@i+1
24            end
25    end
26 
27    insert into @temp values(ltrim(@string))
28 
29    RETURN
30 end

更多相关文章

  1. SQL Server中的TextPtr函数
  2. MySQL字符串相加函数如何运行?似曾相识还是记一笔吧
  3. mysql自定义排序规则函数——field()
  4. oracle基础知识总结 part 3 : 三范式,PLSQL,存储过程,函数,触发器
  5. sql 内置函数 获取表的 列名
  6. Java se之静态代码块、代码块、构造函数执行顺序问题
  7. 关于JAVA回调函数的使用
  8. 如何在函数中将两个参数从1个类传递给另一个?
  9. 回调函数在Android监听机制中的体现

随机推荐

  1. Service和Activity通讯的3种常用方式示例
  2. android tab和listiew
  3. Android(安卓)自动检测版本并升级
  4. android中资源整理
  5. Android(安卓)架构组件(一)——Lifecycle
  6. Afinal框架(简介)
  7. 属性资源与Android命名空间
  8. Android中生成和扫描二维码
  9. Android(安卓)通知(使用NotificationCompa
  10. Android进程系列第八篇---LowmemoryKille