/****** Object: StoredProcedure [dbo].[p_BaseSave] Script Date: 01/26/2015 20:18:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= ALTER PROCEDURE [dbo].[p_BaseSave] -- Add the parameters for the stored procedure here @baseSql varchar(5000),--sql语句 @saveType int,--保存类型,1=添加保存,2=修改保存,3=删除 @modid varchar(20), --模块id号 @tablename varchar(50),--表名 @keyfield varchar(50),--关键字段 @keyvalue varchar(50),--关键值 @operatorid int,--操作员 @operatorname varchar(50),--操作员 @msg varchar(2000) output AS BEGIN declare @tmpsql varchar(3000),@retValue int,@tbname varchar(50),@lkeyfield varchar(50) begin transaction if @saveType not in (1,2,3) begin set @msg='操作类型错误' goto on_error end set @tbname = @tablename set @lkeyfield=@keyfield set @msg='' if ISNULL(@tbname,'')='' begin select @tbname=sqldt1 from p_systemdlltab where DllCoid=@modid if isnull(@tbname,'')='' begin set @msg='基础模板主配置错误' goto on_error end end if ISNULL(@lkeyfield,'')='' begin select top 1 @lkeyfield=fieldname from p_systemwordbooktab where tab=@modid order by orderid if isnull(@lkeyfield,'')='' begin set @msg='基础模板关键字段配置错误' goto on_error end end if isnull(@keyvalue,'')='' begin set @msg='未传入关键值' goto on_error end begin try --保存前检查 exec @retValue=p_baseSaveBefore @saveType,@modid,@tbname,@lkeyfield,@keyvalue,@operatorid,@operatorname,@msg output if @retValue<0 begin goto on_error end --保存 exec(@basesql) --保存后检查 exec @retValue=p_baseSaveAfter @saveType,@modid,@keyvalue,@operatorid,@operatorname,@msg output if @retValue<0 begin goto on_error end commit return 1 end try begin catch set @msg= LEFT( ERROR_MESSAGE(),1000) goto on_error end catch on_error: rollback set @msg=char(13)+@msg select @msg return -1 END