在使用CallableStatement的时候遇到很大瓶颈,它执行的不再是一个现写的sql语句,而是调用数据库的存储过程。我向毛主席发誓,我上《数据库原理》课也没怎么逃课呀,老师上课真的没有讲过什么“存储过程”的概念。为此,怎么在sql server中创建存储过程成了一个棘手问题,探索了好久才把这个问题攻克。

先来说说“存储过程的优点”,网上查的,总结一下大概就是安全,创建时编译后以后使用都不用再编译,可以设置参数,可以反复使用。

这里列出下一篇日志代码中用到的几个存储过程,打开sql server2008,依次展开左侧的对象资源管理器中的树状目录 :数据库->TestDB(自己的数据库名称)->可编程性,此时就可以看到“存储过程”节点了,鼠标右键新建存储过程,就会打开sql查询编辑器,同时里面已经列出了创建存储过程的相关语句提示。

好了,列出我创建的8个存储过程:

一,pro_inserttnt:

CREATE PROCEDURE pro_inserttnt

AS

insert into cchild values('test','testson','1995-05-06',15)

GO

在sql server2008执行这个存储过程的方法:打开sql 查询语句编辑器,敲入语句exec dbo.pro_inserttnt;执行。

二,pro_insert

CREATE PROCEDURE pro_insert(@cusername varchar(50),@para2 varchar(50),@pa3 varchar(50),@par4 int)

AS

insert into cchild values(@cusername,@para2,@pa3,@par4)

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_insert 'hello','helloson2','1994-06-01',16 执行

三,pro_update_age_by_birthday

CREATE PROCEDURE pro_update_age_by_birthday

@Param1 varchar(50), @Pa2 int

AS

BEGIN

update cchild set age=@Pa2 where birthday=@Param1

END

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_update_age_by_birthday '1998-02-06',16 执行。

四,pro_delete_by_name

CREATE PROCEDURE pro_delete_by_name

@Param1 varchar(50)

AS

delete from cchild where cusername=@Param1

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_delete_by_name 'Zhao' 执行。

五,pro_select_by_birthday_and_age

create PROCEDURE pro_select_by_birthday_and_age

@Param1 varchar(50),

@Param2 int

AS

select * from cchild where birthday=@Param1 and age=@Param2

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_select_by_birthday_and_age '1998-02-06',16 执行

六,pro_select_back_output

CREATE PROCEDURE pro_select_back_output

@Param1 varchar(50), @Param2 int, @Param3 int output

AS

BEGIN

select * from cchild where birthday=@Param1 and age=@Param2 select @Param3=@Param3+2

END

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_select_back_output '1998-02-06',16,33 执行

七,pro_select_back_output22

create PROCEDURE pro_select_back_output22

@Param1 varchar(50), @Param2 int, @Param3 int output

AS

BEGIN

select * from cchild where birthday=@Param1 and age=@Param2

select @Param3=632

END

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_select_back_output22 '1998-02-06',16,33 执行

八,pro_select_back

CREATE PROCEDURE pro_select_back

@Param1 varchar(50), @Param2 int, @Param3 int

AS

BEGIN

select * from cchild where birthday=@Param1 and age=@Param2

return @Param3+2

END

GO

在sql server2008执行这个存储过程的方法:exec dbo.pro_select_back '1998-02-06',16,33 执行

posted on 2012-12-05 00:31  sagittar  阅读(242)  评论(0)    收藏  举报