夕拾(一)

1.  Sql语句重命名表名称

Exec sp_rename ‘oldtable_name’,’newtable_name’

2.A存储过程接收B存储过程的输出参数

       Exec B @para,@para1 output

      select @para1

3..net接收来自存储过程的输出参数

       SqlParameter[] paras ={new SqlParameter("@FromName",SqlDbType.NVarChar),

                                 new SqlParameter("@list",SqlDbType.Int),

                                 new SqlParameter("@delete_type",SqlDbType.NVarChar,100)};

            paras[0].Value = _frmname;

            paras[1].Value = _d_list;

            paras[2].Direction = ParameterDirection.Output;

 

            DataAccess.SqlHelper.SqlCommon sqlcommon = new DataAccess.SqlHelper.SqlCommon();

            sqlcommon.ExecuteNonQuery("TsDeleteData", false, true, paras);

              //存储过程输出的参数

            string retstr = paras[2].Value.ToString();

            return retstr;

 

4.存储过程中使用事务

     ALTER PROCEDURE dbo.TsDeleteData(

     @List int=0,

     @delete_result nvarchar(100)='' output

)

AS

begin

     set nocount on

     declare @result as nvarchar(30)         --操作結果

     declare @inv_no as nvarchar(15)    --單據單號

     declare @check as int

 

 

     set @result=''            

     set @inv_no=''

     set @check=0

    

     /**************************************************************************

     --取得單據單號

     **************************************************************************/

     --通過d_list取得單據單號

     select @inv_no=inv_no from mmst205 where d_list=@list

    

     if  isnull(@inv_no,'')='' or @inv_no=''

     begin   

         set @result='no record'

         GOTO   errhandle

     end

     /**************************************************************************

     --刪除相關單據,并進行驗證是否刪除完整。

     --刪除完整則傳回刪除成功,否則傳回刪除失敗

     **************************************************************************/

     --開始事務

     BEGIN   TRAN  

    

     --刪除主表

     delete from   mmst205 where inv_no=@inv_no

     delete from   mmst206 where inv_no=@inv_no

 

     --驗證主表

     select @check=count(*) from mmst201 where   inv_no=@inv_no

    

     --如果未刪除完整則回滾事務后跳出操作

     --返回ng

     if  isnull(@check,0)<>0

     begin

         ROLLBACK   TRAN  

         GOTO   errhandle

     end

 

     --驗證從表   

     select @check=count(*) from mmst206 where inv_no=@inv_no

    

     --如果未刪除完整則回滾事務后跳出操作

     --返回ng

     if isnull(@check,0)<>0

     begin

         ROLLBACK   TRAN  

         GOTO   errhandle

     end 

 

     if @check=0

     begin        

         COMMIT   TRAN

         set @delete_result='刪除成功'

     end

 

     errhandle:

      IF   @@ERROR<>0 or  isnull(@check,0)<>0

       BEGIN                           

          set @delete_result='刪除失敗'

          END   

    

     if @result='no record'

     BEGIN             

 

          set @delete_result='沒有要刪除的數據'

 

          END

 

     --

     set nocount off

end

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值