文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>浅谈对存储过程的理解:什么是存储过程,及它的优点等!

浅谈对存储过程的理解:什么是存储过程,及它的优点等!

时间:2010-11-02  来源:SuQr

   我理解的存储过程就是预先定义好的SQL语句,然后存储起来,等你用的时候再把自己所需要的匹配的SQL语句用Execute(即exec)调用就行!

 2、为甚么要用存储过程?(即存储过程的优点!)

   <1>“一对多”:运用了“一对多”的原理,即一条SQL语句可以被多个地方使用!

    <2>性能高:进行复杂的操作时(比如多张表连表查询)可将那些复杂的操作用存储过程先封装起来然后进行查询!

    <3>高速并减少网络流量:只在创造时进行编译,以后每次执行都不需要重新编译,这与一般的SQL语句(一般的SQL语句每执行一次就编译一次)相比就速度加快了很多!

    <4>安全:可以指定只有某用户才可以进行访问!

3、如何定义存储过程?SQL中如何执行存储过程?

  无参:

    Create procedure proc_(名字)

    as

    select * from 表名

    (执行)exec proc_(名字)

  有参:

    create proc [存储过程名] --自定义

    @[参数] 参数类型,

    @[参数] 参数类型 output, --有输入输出

    as

    (sql 语句)

    调用存储过程

    exec 存储过程名 参数名 print @id

 

4、存储过程的种类!

 存储过程的种类:
          1.系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,
          如   sp_help就是取得指定对象的相关信息
          2.扩展存储过程   以XP_开头,用来调用操作系统提供的功能
          exec   master..xp_cmdshell   'ping   10.8.16.1'
          3.用户自定义的存储过程,这是我们所指的存储过程
          常用格式
          Create   procedure   procedue_name
          [@parameter   data_type][output]
          [with]{recompile|encryption}
          as
          sql_statement
  解释:  
        output:表示此参数是可传回的
        with   {recompile|encryption}
        recompile:表示每次执行此存储过程时都重新编译一次
        encryption:所创建的存储过程的内容会被加密

5、在VS中如何执行存储过程?


  vs2005中调用存储过程:

  CREATE PROCEDURE AddCar
  @PayCar varchar(50),
  @XiuLi varchar(50),
  @DateTime varchar(50)
  AS
  insert into CTable values(@PayCar,@XiuLi,@DateTime)
  GO

  cs代码
  con.Open();
  com = new SqlCommand("AddCar", con);
  com.CommandType = CommandType.StoredProcedure;
    com.Parameters.AddWithValue("@PayCar", PayCar);
  com.Parameters.AddWithValue("@XiuLi", XiuLi);
  com.Parameters.AddWithValue("@DateTime", addtme);
  com.ExecuteNonQuery();
  con.Close();


  vs2008调用存储过程

    SqlConnection con= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); 
            con.Open();

            SqlDataAdapter  sda = new SqlDataAdapter("存储过程的名字",con);

            sda.SelectCommand.CommandType = CommandType.StoredProcedure;

            DataSet ds = new DataSet();

            strselect.Fill(ds);

            DlstBuycatalog.DataSource =ds;

            DlstBuycatalog.DataBind();

            con.Close();


 

 

相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载