易截截图软件、单文件、免安装、纯绿色、仅160KB

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
AS
delete from SC where SC.Sno=(select Sno from deleted)
语句形式跟存储过程是一致的,因为触发器本身就是一种存储过程.
资料引用:http://www.258wx.com/


相关文档:

附加sql server 20005数据库

方法一:
1.如果附加数据库时,没有指定逻辑名,则在SQL2005上显示为“全路径,且为大写”。比如,数据库文件D:MyTest.mdf和D:MyTest.ldf,附加到SQL服务器上时,如果没有指定逻辑名,则在SQL2005上显示为“D:MYTEST.MDF”。此时,C#的连接字符串为“DataSource=dsName;AttatchDBFilename=&rdquo ......

SQL 判断身份证号码

现要求查询界面:不论15位或者18位身份证号都能查询出数据库中所有当前用户信息。
方案1:
create or replace function CONVERT_ID_15 (/*转换身份证号为15位*/
  p_id2 in varchar2
) return varchar2
is
  p_id varchar2(20);
  id varchar2(15);
begin
  p_id:=ltrim(p_id2);
  p_id ......

DB2 SQL存储过程语法

 背景:DB2的数据库性能很牛X,但是其文档却很差,尤其是开发参考文档,都是英文的,浏览的时候还很不好找,需要上IBM的网站看,网站也出奇的慢,极不方便,让开发人员举步维艰,这也许是IBM DB2的用户少,书少,资料少的原因。
------------------
创建SQL存储过程(CREATE PROCEDURE (SQL) stat ......

动态SQL基本语法

 Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号