存储过程的定义和基本操作!

 

这两天做一个数据管理系统,边学边做,以前写的关于数据库操作的,都没用到存储过程,这几天学会了怎么用存储过程,总算有点收获 ^_^。

下面是一个存储过程使用过程

在使用存储语句时,它包含了两种特殊的表:inserted表和Deleted表。

Inserted和deleted表主要用于触发器中。

  •     扩展表间引用完整性
  •    在以视图为基础的基表中插入或更新数据
  • 检查错误并基于错误采取行动
  • 找到数据修改前后表状态的差异,并基于此差异采取行动
 Deleted表用于存储DELETE和UPDATE语句所影响的行的副本,在执行DELETE和UPDATE时,行从触发器表中删除,并传输到DELETED表中去。

INSERTED表用于存储INSERT和UPDATE语句所影响的行和副本,在一个插入或更新事务中,新建行添加到INSERTED表和触发器中。INSERTED表中的行是触发器中新行和副本,更新事务类似在删除之后执行插入。也就是行将旧行复制到DELETED表中,然后新行被复制到触发器表和INSERTED中。
下面是一个存储器过程:
表名:productInfo
字段:productID   bigint 8
          productName varchar (50)
    create procedure pro_InsertProduct
(
@productID bigint,
@productName varchar(50)
)
as
    /*对表中进行操作,SQL语句*/
    /*多条件判断*/
    if exists(select * from productInfo  where productID =@productID )
       begin
             return 100
       end
else
          begin
               return 200
        end
/*当然也可以直接操作,不返回值判断*/
对存储过程执行操作赋值:
    private int InsertProduct()
{    
   sqlConnection conn=new  sqlconnection("dataSouce");
            conn.open();
            sqlCommand cmd=new SqlCommand();
           cmd.Connection = conn;
            cmd.CommandText = "proc_insertProduct";
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@productID", SqlDbType.BigInt).Value = 1001;
            cmd.Parameters.Add("@ProductName", SqlDbType.VarChar, 50).Value = mobile;
             /*添加存储过程返回值,可以在执行语句返回该值进行判定操作*/
             SqlParameter returnValue = cmd.Parameters.Add("returnValue", SqlDbType.Int, 4);
            returnValue.Direction = ParameterDirection.ReturnValue;//储存过程里的返回值
           
             cmd.ExecuteNonQuery();
             int P_int_return = (int)returnValue.Value;
            return P_int_return;

}
也可以在其中在进行更复杂的SQL语句操作,以完成更多要。
                    


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值