Files
lserp_cs_5.0/新增SQL/20150126/基础模板保存存储过程修改.sql
2026-07-10 15:25:05 +08:00

95 lines
4.1 KiB
Transact-SQL


/****** Object: StoredProcedure [dbo].[p_BaseSave] Script Date: 01/26/2015 20:18:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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