快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

sqlserver存储过程,sqlserver存储过程for循环

sqlserver存储过程怎么调试

最近在做vb项目的时候,用到了存储过程的调试,现在总结一下发现单步调试存储过程有以下2种方法:

创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为克井企业提供专业的成都网站制作、成都做网站、外贸营销网站建设克井网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

1.这种方法自己已经做过,是可以的,如下:

a.如果目标数据库存在存储过程,右击该存储过程-修改,打开存储过程,并在需要的地方设置断点。(如果没有自定义存储过程,则需要在Sql Server 2012数据库中创建存储过程,完成后在里面设置断点);

b.另外开启一个新建查询窗口,写入调用代码:例如   exec BillManageInputProc '主单1','0111111','0111112','121','legend','2014-09-24','001','2014-09-24','1','市场部','0' ,单击 调试按钮 启动存储过程的调试;

c.单击 F 11 进行逐句调试。

2.在vs2010调试存储过程步骤如下:

首先,打开vs,点击 视图--服务器资源管理器

SqlServer存储过程

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怎么创建存储过程

q 定义存储过程的语法

CREATE PROC[EDURE] 存储过程名

@参数1 数据类型 = 默认值,

…… ,

@参数n 数据类型 OUTPUT

AS

SQL语句

GO

q 和C语言的函数一样,参数可选

q 参数分为输入参数、输出参数

q 输入参数允许有默认值

创建不带参数的存储过程

CREATE PROCEDURE proc_stu /*proc_stu为存储过程的名称*/

AS

DECLARE @writtenAvg float,@labAvg float /*笔试平均分和机试平均分变量 */

SELECT @writtenAvg=AVG(writtenExam),

@labAvg=AVG(labExam) FROM stuMarks

print '笔试平均分:'+convert(varchar(5),@writtenAvg)

print '机试平均分:'+convert(varchar(5),@labAvg)

IF (@writtenAvg70 AND @labAvg70)

print '本班考试成绩:优秀' /*显示考试成绩的等级 */

ELSE

print '本班考试成绩:较差'

print '--------------------------------------------------'

print ' 参加本次考试没有通过的学员:'

SELECT stuName,stuInfo.stuNo,writtenExam,labExam /*显示未通过的学员 */

FROM stuInfo INNER JOIN stuMarks ON

stuInfo.stuNo=stuMarks.stuNo

WHERE writtenExam60 OR labExam60

GO

调用存储过程

q EXECUTE(执行)语句用来调用存储过程

q 调用的语法

EXEC 过程名 [参数]

创建带参数的存储过程

q 存储过程的参数分两种:

q 输入参数

q 输出参数

q 输入参数:

用于向存储过程传入值,类似C语言的按值传递;

q 输出参数:

用于在调用存储过程后,

返回结果,类似C语言的

按引用传递;

sql server中怎样用代码创建存储过程

打开SQL server management studio,连接到数据库,展开想要创建的数据库,找到【可编程性】-【存储过程】的菜单

请点击输入图片描述

在第一步找到的【存储过程】菜单项上面,点击鼠标右键,依次选择【新建】-【存储过程】,就可以开始创建存储过程了

请点击输入图片描述

当点击了第二步的【存储过程】之后,在右侧就会出现一个新的窗口,而且默认有好多的代码和注释,这些就是sqlserver默认创建的存储过程的结构和注释

请点击输入图片描述

对于第三步看到的存储过程结构,因为是英文的,可能看着比较吃力。本文特意做了一个中文的翻译对照版本,同时增加了一下设置项的解释。

1)SET ANSI_NULLS ON:意思是空值NULL在匹配NULL条件的时候返回false,这种判断null就需要使用 is null 或者 is not null

2)SET ANSI_NULLS OFF:意思是空值NULL在匹配NULL条件的时候返回true

3)SET QUOTED_IDENTIFIER ON:意思是如果内容与sqlserver的关键字相同,允许通过加双引号、单引号的方式加以区分

4)SET QUOTED_IDENTIFIER OFF:意思是与sqlserver的关键字相同的,不允许加双引号,也就是自定义的不允许与关键字重复

5)SET NOCOUNT ON:意思是不返回影响的行数

6)SET NOCOUNT OFF:意思是要返回影响的行数

请点击输入图片描述

此处仅仅创建一个简单的演示存储过程,名字叫做usp_SimpleStoreProcedure,拥有一个整型的传入参数 @x,存储过程直接返回传入参数乘以10倍的结果。写完存储过程之后,按F5就可以将其存储到数据库中

请点击输入图片描述

在第二步中找到的【存储过程】菜单下面找到第5步创建的存储过程名字usp_SimpleStoreProcedure,在这个名字上面点击鼠标右键,选择【执行存储过程】

请点击输入图片描述

紧接着,会弹出一个【执行过程】的界面,里面有存储过程的参数,在【值】这一列输入想要传入的参数值,比如10,然后点击【确定】按钮,就可以看到执行结果100了。

注意:假设是使用sql语句执行存储过程,直接使用这样的语句就行了: EXEC [dbo].[usp_SimpleStoreProcedure] @x = 10

请点击输入图片描述


当前文章:sqlserver存储过程,sqlserver存储过程for循环
文章源于:http://6mz.cn/article/dsipggp.html

其他资讯