您的位置:首页技术文章
文章详情页

实践sql server存储过程及触发器

【字号: 日期:2023-11-02 14:32:12浏览:4作者:猪猪

本文作者和您一起实践sql server存储过程及触发器,这可能也是整修数据库的精华所在吧!

1.创建SQL存储过程:CREATE PROCEDURE stu_proc1//指定过程名;@Sno varchar(50); ='7000803068',//定义参数以及默认值; AS//执行SQL语句;select * from Student ;where Sno=@Sno;GO

Declare @XXX声明变量set @XXX=XXX设定变量值同时里面也有if else while等语句不过得加上begin end

2.执行存储过程; Execute stu_proc1 @Sno='XXX' @Sname='XXXX'

其实可以把存储过程看成一个C语言的函数。函数名是存储过程名,形参是也是里面的参数,里面还有局部变量,同时也可设定值。也可以返回值,用return语句。里面可以用到if else,while语句。但是C里面的函数功能会更大,不能等同,只能做比较。写存储过程也有点像写个函数一样。

同时在JAVA语言中也可以调用存储过程,类似C里调用函数。设定形参值。

3.JDBC中调用存储过程;CallableStatement对象;String sql="{call stu_proc1(?,?)}";;String firstVal="";;String secondVal="";;Class.forName();;Connection conn=DriverManager.getConnection("","","");;CallableStatement stmt=conn.prepareCall(sql);;stmt.setString(1,firstVal);;stmt.setString(2,secondVal);;ResultSet rs=stmt.executeQuery();

存储过程可以提高访问数据库的性能和速度。触发器是一种特殊的存储过程,主要用于update,insert,delete这三种语句,主要是处理表与表之间的关联,也就是约束性吧。同时有二个表inserted(插入表),deleted(删除表)而update可以看成先删除,然后插入.比如,当要删除一个学生时,同时该学生的选课记录也是要删除的,这时可以在学生表进建个触发器就可以实现这种功能。

触发器就是可以进行关联操作,而单单SQL语句不能做到这一点。

CREATE TRIGGER StudentDelete ON [dbo].[Student] FOR; DELETE ASdelete from SC where SC.Sno=(select Sno from deleted)

语句形式跟存储过程是一致的,因为触发器本身就是一种存储过程.

标签: Sql Server 数据库
相关文章: