十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
SQL Server存储过程相信大家都接触过,下面就教您如何实现SQL Server存储过程的单步调试,希望可以让您对SQL Server存储过程有更深的认识。
成都创新互联专业成都网站设计、网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文营销等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。
1)调试
在SQL Server的SQL Query Analyzer(查询分析器)中,打开Object Brower(F8),在左边的列表中选择一数据库,展开Stored Procedures,然后选择要调试的存储过程(或任意一个存储过程),按右键,点击“Debug”,则弹出Debug Procedure对话框,显示该存储过程的参数(可在Procedures列表中选择其他要调试的存储过程),为参数输入初始值,点击“Execute”按钮,进入Debug窗口;可使用上面一排按钮或其对应的快捷键对该存储过程进行“执行”“设断点”“取消断点”“单步跟踪”等操作;窗口下方是参数列表,第一个是自定义参数变量列表,在Debug的过程中显示全局变量和局部变量的值的变化,可对参数列表中该存储过程的参数初值进行修改,再重新调试;第二个列表是系统变量,可自行增加,如添加“@@Error”“@@RowCount”,观看其值的变化,其值不能手工修改。第三个列表是CallStack,暂时不知道怎么用。在参数列表中,不能直接把User_Name()、GetDate()等函数直接放到参数列表中跟踪,要把它们赋值予自定义变量进行查看。
大家可连接Pivot的SQL Server进行尝试,使用本机DB系统如果不行,则需要用Administrator登录本机,然后在企业管理器中,在本机的SQL Server Registration上点击右键,点“属性”,选择“Security”,选择“This account”,输入Administrator和密码,确定之。
2)SQL Server存储过程单步调试
具体步骤如下:
1、将服务器【身份验证】属性设置成【混合模式】(window与sql身份验证)
2、在【控制面板】中打开【服务】将【MSSQLSERVER】服务打开【属性】,选择【登录】页面,将登录身份设置成服务器本地帐号和该帐号密码,如administrator,密码123;
3、重新启动sqlserver服务,此时的服务指的是【SQL服务管理器】中的SQL SERVER服务;
假设【帐号】设置为administrator
此时达到的效果是:服务器本地帐号administrator与客户端上的administrator(并且该帐号的密码要与服务器密码相同)可以通过【查询分析器】进行调试;
如果想让【其他帐号】也能够调试,那么还需要如下设置:
1、在【服务器】上运行dcomcnfg.exe;
2、在【默认安全机制】中【默认访问权限】右边点击【编辑默认值】选择允许调试的帐号类型,如users用户类型,sample帐号有包含users组;
3、重新启动sqlserver服务;
3、在客户端上创建与服务帐号密码一样的用户,如sample;
做到这步就可以通过查询分析器的调试功能进行单步调试了
declare @i int
set @i = 0
while @i 100
begin
print @i
set @i = @i + 1
end
-- 定义循环变量
declare @loopIndex int set @loopIndex = 0
--定义循环次数
declare @count int set @count=1
-- 取得循环次数
select @count=count(1) from sys_user
-- 开始循环
while @loopIndex = @count
begin
-- 定义接收参数
declare @USER_NAME nvarchar(50)
-- 取得循环的数据
SELECT @USER_NAME = hh.USER_NAME
FROM (SELECT ROW_NUMBER() OVER (ORDER BY USER_NAME) 'rowindex',USER_NAME FROM sys_user)hh
WHERE hh.rowindex = @loopIndex
-- 进行相关业务逻辑 例如输出结果
print @USER_NAME
-- 循环自动加一
set @loopIndex = @loopIndex + 1
end
begin
-- 定义错误返回信息
declare @error int
-- 定义接收参数
declare @User_Name varchar(50)
declare @Address varchar(50)
set @error=0
--定义游标
declare demo_cursor cursor
for (select User_Name,Address from sys_user)
--打开游标--
open demo_cursor
--开始循环游标变量--
fetch next from demo_cursor into @User_Name,@Address
while @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态--
begin
print @User_Name+'____'+@Address
set @error= @error + @@ERROR --记录每次运行sql后是否正确,0正确
fetch next from demo_cursor into @User_Name,@Address --转到下一个游标,没有会死循环
end
close demo_cursor --关闭游标
deallocate demo_cursor --释放游标
end
更多内容请访问:
sqlserver2019每个数据文件的基本存储单位为8KB。根据查询相关公开信息,数据文件的初始存储大小为13MB,每个数据文件的基本存储单位的大小是8KB,每1MB数据文件可以容纳128页,页是sqlserver2019中用于数据存储的最基本单位。
create
procedure
prCreateSubPlan
as
begin
declare
@id
int,
@intCycle
int,
@planName
varchar(100),
@createTime
smalldatetime,
@cycleTime
int
select
@id
=
min(t_cplan_id)
from
t_cplan
while
(@id
is
not
null)
begin
select
@planName=t_plan_name,
@createTime
=
createTime,
@cycleTime
=
cycleTime
from
t_cplan
where
t_cplan_id=@id
select
@intCycle=
while
(@intCycle@cycleTime)
begin
--
表t_plan
列t_plan_id是IDENTITY
列
insert
t_plan
(t_plan_name,
t_cplan_id,
createTime)
values
(@planName,
@id,
dateadd(day,
@intCycle,
@createTime))
select
@intCycle
=
@intCycle
+
1
end
select
@id
=
min(t_cplan_id)
from
t_cplan
where
t_cplan_id@id
end
end
go
您好,您是想问sqlserver是云存储还是本地存储的区别是什么吗?sqlserver是云存储还是本地存储的区别是储存地点不同。云存储是把sqlserver的数据储存在网络上,登陆账号即可查看调用,比较方便,而本地存储是把sqlserver的数据储存在电脑磁盘上,只有在存储的电脑上才可以查看。
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了。
注意,怕写的不对,可以执行下,想验证sql语句是否正确,就使用print输出下。
第三步:点击上面的执行,存储过程就写好了,要怎么调用呢,在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。
注意事项:
注意执行exec时,参数的类型,要与建立的存储过程时设置的参数类型一致。