二、SQLSERVER2008Express 智能提示加强:
该功能是SQL2008在SQL2005之后的升级版,我们可以很方便的调用智能提示,和 VS一致:使用快捷键ctrl + J 即可。
截图如下:
该功能是否与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键,即可调试以上代码块。
截图如下:
接着点击F11逐语句debug 或者F10逐过程调试代码。
截图如下:
这个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。
截图如下:
当断点经过exec sp_getOrders 10248 这段代码时,点击F11进入sp_getOrders存储过程进行逐语句debug。
截图如下:
这样可以在嵌套的存储过程或函数内进行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的类似的界面
无法启动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登录,即可看到相应的用户名。