sap 清空数据库

 set nocount on
declare @objectCode varchar(100)
declare @tableName varchar(100)
--此游标清楚UDO主表的数据
declare udoCursor cursor for
select Code,TableName from oudo where Code != 'FSSBOCUFMS'
open udoCursor
fetch next from udoCursor into @objectCode,@tableName
while(@@fetch_status = 0)
   begin
      exec('truncate table [@'+@tableName+']') --清楚表中的数据
      update onnm set AutoKey = 1 where ObjectCode = @objectCode --修改数据中的主键
      update nnm1 set NextNumber = 1 where ObjectCode = @objectCode
      fetch next from udoCursor into @objectCode,@tableName
   end
close udoCursor
deallocate udoCurSor
--删除UDO子表中的所有数据
declare udoChildCursor cursor for
select Code,TableName from udo1
open udoChildCursor
fetch next from udoChildCursor into @objectCode,@tableName
while(@@fetch_status = 0)
   begin
       exec('truncate table [@'+@tableName+']') --清楚Udo子表的数据
       fetch next from udoChildCursor into @objectCode,@tableName
   end
close udoChildCursor
deallocate udoChildCursor
--查看表中的哪些表中有数据 ,删除不是UDO的表的数据
declare @tableid int
declare @table varchar(100)
declare @tableCol table(name varchar(100)) --删除哪些表
insert into @tableCol values('AITW')
insert into @tableCol values('ITM1')
insert into @tableCol values('AITM')
insert into @tableCol values('OIGN')
insert into @tableCol values('ADOC')
insert into @tableCol values('IGN1')
insert into @tableCol values('IGE1')
insert into @tableCol values('PDN6')
insert into @tableCol values('OITW')
insert into @tableCol values('OCRD')
insert into @tableCol values('OITM')
insert into @tableCol values('@FSCXFSPKINFO')
insert into @tableCol values('@REGESTERSMOKEHELP')
insert into @tableCol values('@FSSBOTRANSLOG')
insert into @tableCol values('ACRD')
insert into @tableCol values('OINM')
insert into @tableCol values('PDN6')
insert into @tableCol values('OITW')
insert into @tableCol values('PDN1')
insert into @tableCol values('LeaderUser')
insert into @tableCol values('OIGE')
insert into @tableCol values('PDN12')
insert into @tableCol values('AFPR')
insert into @tableCol values('AIT1')
insert into @tableCol values('@FSCXFITEMBATINFOHELP')
insert into @tableCol values('OPDN')
insert into @tableCol values('LeaderUser')
insert into @tableCol values('CurrentGroup')
insert into @tableCol values('CurrentLotto')
insert into @tableCol values('@FSCXFFACTORYLOG')


declare userCursor cursor for
select name,id from sysobjects  where xtype = 'U'
open userCursor
fetch next from userCursor into @table,@tableid
while(@@fetch_status = 0)
    begin
       declare @param nvarchar(100)
       declare @sql nvarchar(1000)
       declare @num int
       set @sql = N' select @num1 = count(1) from ['+@table+']'
       set @param = N'@num1 int output'
       exec sp_executesql @sql,@param,@num1 = @num output
       if(@num > 0)  
          begin
              if(charindex('_Tombstone',@table) > 0)   --Pda表的数据
                    begin
                        exec('truncate table ['+@table+']')
                    end
              else if(charindex('Table',@table) > 0)   --报表的数据
                    begin
                        exec('truncate table ['+@table+']')
                    end
              else if(exists(select 1 from @tableCol where name = @table))  --SBO系统表及无对象表数据
                    begin
                        exec('truncate table ['+@table+']')
                    end
             
          end
       fetch next from userCursor into @table,@tableid
    end
close userCursor
deallocate userCursor

--处理系统UDO
declare @objtype table(objtype varchar(100))
insert into @objtype values('4')
insert into @objtype values('64')
insert into @objtype values('59')
insert into @objtype values('20')
insert into @objtype values('60')
insert into @objtype values('2')
update onnm set AutoKey = 1 where ObjectCode in (select objtype from @objtype)
update nnm1 set NextNumber = 1 where ObjectCode in (select objtype from @objtype)
--处理系统用户
update ousr set U_WhsAuth = null ,U_ItgAuth = null ,U_ShpAuth = null,U_SuperAuth = null
print '清空数据库成功'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值