好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQLSERVER2005调试存储过程跟函数

SQLSERVER2005调试存储过程跟函数 以前一直用 Toad for SqlServer 和 Database.Net 来调试SQL2005的存储过程跟函数 Toad for SqlServer 介绍以及下载:toad for sqlserver5.7 Database.Net 介绍以及下载:Database .NET 8.0 发布,数据库管理工具 今日发现原

SQLSERVER2005调试存储过程跟函数

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

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  

查看更多关于SQLSERVER2005调试存储过程跟函数的详细内容...

  阅读:53次