二、SQLSERVER2008Express 智能提示加强:


       该功能是SQL2008在SQL2005之后的升级版,我们可以很方便的调用智能提示,和 VS一致:使用快捷键ctrl + J 即可。

       截图如下:

      

SQL SERVER2008如何执行语句 sql2008怎么运行语句_sql server

 

该功能是否与VS一样了呢? 毕竟他们都是微软的产品。

 

   三、调试T-SQL语句:


     1.Debug普通T-SQL语句:

         SQL代码如下:

1 
    
    use
    
     northwind

    
    2 
    
     
    
    go
    
    

    
    3 
    
    

    
    4 
    
     
    
    declare
    
     
    
    @i
    
     
    
    int
    
     ,
    
    @j
    
     
    
    int
    
    ,
    
    @k
    
     
    
    int
    
     

    
    5 
    
     
    
    set
    
     
    
    @i
    
     
    
    =
    
     
    
    1
    
    ;

    
    6 
    
     
    
    set
    
     
    
    @j
    
     
    
    =
    
     
    
    2
    
    ;

    
    7 
    
     
    
    set
    
     
    
    @k
    
    =
    
    @i
    
     
    
    +
    
     
    
    @j
    
    

    
    8 
    
    select
    
     
    
    @i
    
    ;

    
    9 
    
    go

   非常简单的定义了 三个int 型变量:i、j、k并且对这些变量进行简单的逻辑运算,在Management Studio 中只要轻松的按F11键,即可调试以上代码块。

   截图如下:

SQL SERVER2008如何执行语句 sql2008怎么运行语句_SQL_02

    接着点击F11逐语句debug 或者F10逐过程调试代码。

    截图如下:

SQL SERVER2008如何执行语句 sql2008怎么运行语句_存储过程_03

这个dubug的场面您是否觉得已经和VS相差无几了呢?

 

    四、支持复杂存储过程嵌套debug:


     您可能会疑问,在一个庞大的系统中,如果数据库逻辑绝大部分都是存储过程实现的情况下,会出现存储过程嵌套存储过程或者嵌套存储函数这样的代码。

     SQL2008是否支持调试功能呢?答案是肯定的。

     首先定义一个简单的存储过程(本文使用NorthWind数据库)代码如下:

1 
    
    CREATE
    
     
    
    procedure
    
     sp_getOrders

    
     2 
    
      
    
    @orderID
    
     
    
    int
    
     
    
    =
    
     
    
    null
    
    

    
     3 
    
     
    
    as
    
    

    
     4 
    
     
    
    if
    
     (
    
    @orderID
    
     
    
    is
    
     
    
    null
    
     )

    
     5 
    
       
    
    begin
    
     

    
     6 
    
         
    
    print
    
     
    
    '
    
    null
    
    '
    
    

    
     7 
    
       
    
    end
    
    

    
     8 
    
       
    
    else
    
    

    
     9 
    
          
    
    begin
    
    

    
    10 
    
            
    
    print
    
     
    
    '
    
    correct
    
    '
    
    

    
    11 
    
          
    
    end
    
    

    
    12 
    
       
    
    select
    
     
    
    *
    
     
    
    from
    
     Orders 
    
    where
    
      OrderID 
    
    =
    
     
    
    @orderID
    
    

    
    13 
    
     
    
    go

该存储过程在以下批处理内被调用,代码如下:

1 
    
    declare
    
     
    
    @i
    
     
    
    int
    
     ,
    
    @j
    
     
    
    int
    
    ,
    
    @k
    
     
    
    int
    
     

    
    2 
    
     
    
    set
    
     
    
    @i
    
     
    
    =
    
     
    
    1
    
    ;

    
    3 
    
     
    
    set
    
     
    
    @j
    
     
    
    =
    
     
    
    2
    
    ;

    
    4 
    
     
    
    select
    
     
    
    @k
    
    =
    
    @i
    
     
    
    +
    
     
    
    @j
    
    

    
    5 
    
     
    
    exec
    
     sp_getOrders 
    
    10248
    
    

    
    6 
    
     
    
    select
    
     
    
    @i
    
    ;

    
    7 
    
     
    
    go

   F11对以上代码进行SQL Debug。

   截图如下:

SQL SERVER2008如何执行语句 sql2008怎么运行语句_SQL_04

   当断点经过exec sp_getOrders 10248 这段代码时,点击F11进入sp_getOrders存储过程进行逐语句debug。

   截图如下:

SQL SERVER2008如何执行语句 sql2008怎么运行语句_调试_05

这样可以在嵌套的存储过程或函数内进行debug了,此刻不得不承认: 升级后的SQL2008越来越强大。您还恐惧使用或者调试存储过程么?


二、解决sql server 2008 无法启动t-sql调试,未能附加到 sql server 进程


 以前没有关注sql server 2008的新特性,只知道加了智能感知。其他的也没有细细的去了解。今天看到园子里的一篇文章,在本地试了下,运行代码如下:

declare @i int,@m int,@sum int set @i=2; set @m=3; set @sum=@i+@m; print @sum;

提示说错误:sql server 2008 无法启动t-sql调试,未能附加到 sql server 进程。

 

查了下,原来要运行如下命令:

exec sp_addsrvrolemember 'KEVIN-PC\Administrator', 'sysadmin'

 

再调试出现与vs的类似的界面

SQL SERVER2008如何执行语句 sql2008怎么运行语句_调试_06

无法启动T-SQL调试。未能连接到计算机 “.”
1.要在服务器本机,不要远程,如果是远程,需要远程配置  参见网站:  https://msdn.microsoft.com/zh-cn/library/cc646024(v=sql.105).aspx
2.服务器名称用电脑名称(cmd->hostname),不要用IP,(local)或.

 

将 Windows 登录帐户添加为 sysadmin

已经具有 sysadmin 特权的用户必须执行以下命令:

sp_addsrvrolemember 'Domain\Name', 'sysadmin'

其中,Domain\Name 表示 Windows 登录帐户,若不清楚登录账户是什么,可以在SQLServer连接中尝试Window登录,即可看到相应的用户名。