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