标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,725)
- DB2 (22)
- MySQL (74)
- Oracle (1,580)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (160)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (579)
- Oracle安装升级 (94)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (81)
- PostgreSQL (23)
- PostgreSQL恢复 (10)
- SQL Server (28)
- SQL Server恢复 (9)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 删除redo导致ORA-00313 ORA-00312故障处理
- Navicat连接postgresql时出现column “datlastsysoid” does not exist错误解决
- aix磁盘损坏oracle数据库恢复
- pg误删除数据恢复(PostgreSQL delete数据恢复)
- PostgreSQL表文件损坏恢复—pdu恢复损坏的表文件
- linux rm -rf 删除数据文件恢复
- PostgreSQL恢复工具—pdu恢复单个表文件
- PostgreSQL恢复工具—pdu工具介绍
- 近1万个数据文件的恢复case
- 不当使用_allow_resetlogs_corruption参数引起ORA-600 2662错误
- CSSD signal 11 in thread clssnmRcfgMgrThread故障处理
- 使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
- ORA-00069: cannot acquire lock — table locks disabled for xxxx
- ORA-600 [4000] [a]相关bug
- sql server数据库“正在恢复”故障处理
- 如何判断数据文件是否处于begin backup状态
- CDM备份缺少归档打开数据库报ORA-600 kcbzib_kcrsds_1故障处理
- ORA-07445: exception encountered: core dump [expgod()+43] [IN_PAGE_ERROR]
- 2025年第一起ORA-600 16703故障恢复
- _gc_undo_affinity=FALSE触发ORA-01558
分类目录归档:SQL Server
动态复制一个表中一条数据到另一个表中(列不完全相同)(存储过程实现)
因为要用到回收站功能,删除一条记录,要先放到一个delete表中,以便以后恢复
要求:
1、delete表要比被删除表中多三项(用于表明删除用户,删除的是哪种用户表,删除该条数据在该用户表中的id)
2、用户表有多张(一个部门一张,但是一个部门又有多个用户,所有设计数据库时,回收站表只设置了一张,因为如果每一部门设置一张delete表,那么有很多跨部门操作,数据库最后终于一个用户的回收站里面记录整理起来很麻烦)
3、表中的记录项很多,有40多个属性,所有如果有程序来实现,数据量太大,会出现不可预期的错误,不得不用存储过程
因为自己对存储过程也不熟悉,一边写,一边学习,用了将近一天的时间,终于搞定了,其中主要难题:
1、数据存放到临时变量中,
2、对其中一个变量——表的调用
现在把存储过程放起来,也是对我自己一天工作的肯定,高手不要见笑
ALTER PROCEDURE [dbo].[copy_data] @tablename varchar(30), @t_id int , @u_id int as set nocount on declare @tm varchar(500) declare @jh int declare @ajh int declare @gjz varchar(100) declare @sjms varchar(5000) declare @fsdd varchar(100) declare @fsrq nchar(10) declare @zyrw varchar(1000) declare @psz varchar(20) declare @psrq nchar(10) declare @tgz varchar(50) declare @zrz varchar(50) declare @sc nchar(4) declare @ly varchar(8) declare @cjh varchar(20) declare @srz nchar(10) declare @flh int declare @dph nchar(10) declare @bz varchar(500) declare @xpdx bigint declare @xpgs nchar(10) declare @xpxs nchar(11) declare @scrid int declare @scr nchar(10) declare @scsj datetime declare @scbm int declare @shr nchar(10) declare @shsj datetime declare @ecbz varchar(500) declare @gdr nchar(10) declare @gdsj datetime declare @xgsj datetime declare @flag nchar(1) declare @ysurl varchar(100) declare @ysfile varchar(250) declare @xgurl varchar(100) declare @xgfile varchar(250) declare @xwurl varchar(500) declare @xwnr varchar(4000) declare @textall varchar(4000) declare @fei nvarchar(4000) set @fei=N'select @tm=[tm] ,@jh=[jh] ,@ajh=[ajh] ,@gjz=[gjz] ,@sjms=[sjms] ,@fsdd=[fsdd] ,@fsrq=[fsrq] ,@zyrw=[zyrw] ,@psz=[psz] ,@psrq=[psrq] ,@tgz=[tgz] ,@zrz=[zrz] ,@sc=[sc] ,@ly=[ly] ,@cjh=[cjh] ,@srz=[srz] ,@flh=[flh] ,@dph=[dph] ,@bz=[bz] ,@xpdx=[xpdx] ,@xpgs=[xpgs] ,@xpxs=[xpxs] ,@scrid=[scrid] ,@scr=[scr] ,@scsj=[scsj] ,@scbm=[scbm] ,@shr=[shr] ,@shsj=[shsj] ,@ecbz=[ecbz] ,@gdr=[gdr] ,@gdsj=[gdsj] ,@xgsj=[xgsj] ,@flag=[flag] ,@ysurl=[ysurl] ,@ysfile=[ysfile] ,@xgurl=[xgurl] ,@xgfile=[xgfile] ,@xwurl=[xwurl] ,@xwnr=[xwnr] ,@textall=[textall] from ['+@tablename+N'] where id='+CAST(@t_id AS varchar(10)) exec sp_executesql @fei, <a href="mailto:N%27@tm" target="_blank">N'@tm</a> varchar(500) OUT, @jh int OUT, @ajh int OUT, @gjz varchar(100) OUT, @sjms varchar(5000) OUT, @fsdd varchar(100) OUT, @fsrq nchar(10) OUT, @zyrw varchar(1000) OUT, @psz varchar(20) OUT, @psrq nchar(10) OUT, @tgz varchar(50) OUT, @zrz varchar(50) OUT, @sc nchar(4) OUT, @ly varchar(8) OUT, @cjh varchar(20) OUT, @srz nchar(10) OUT, @flh int OUT, @dph nchar(10) OUT, @bz varchar(500) OUT, @xpdx bigint OUT, @xpgs nchar(10) OUT, @xpxs nchar(11) OUT, @scrid int OUT, @scr nchar(10) OUT, @scsj datetime OUT, @scbm int OUT, @shr nchar(10) OUT, @shsj datetime OUT, @ecbz varchar(500) OUT, @gdr nchar(10) OUT, @gdsj datetime OUT, @xgsj datetime OUT, @flag nchar(1) OUT, @ysurl varchar(100) OUT, @ysfile varchar(250) OUT, @xgurl varchar(100) OUT, @xgfile varchar(250) OUT, @xwurl varchar(500) OUT, @xwnr varchar(5000) OUT, @textall varchar(5000) OUT', @tm OUT, @jh OUT, @ajh OUT, @gjz OUT, @sjms OUT, @fsdd OUT, @fsrq OUT, @zyrw OUT, @psz OUT, @psrq OUT, @tgz OUT, @zrz OUT, @sc OUT, @ly OUT, @cjh OUT, @srz OUT, @flh OUT, @dph OUT, @bz OUT, @xpdx OUT, @xpgs OUT, @xpxs OUT, @scrid OUT, @scr OUT, @scsj OUT, @scbm OUT, @shr OUT, @shsj OUT, @ecbz OUT, @gdr OUT, @gdsj OUT, @xgsj OUT, @flag OUT, @ysurl OUT, @ysfile OUT, @xgurl OUT, @xgfile OUT, @xwurl OUT, @xwnr OUT, @textall OUT; INSERT INTO [yx].[dbo].[S_del] ([t_id] ,[u_id] ,[u_t] ,[tm] ,[jh] ,[ajh] ,[gjz] ,[sjms] ,[fsdd] ,[fsrq] ,[zyrw] ,[psz] ,[psrq] ,[tgz] ,[zrz] ,[sc] ,[ly] ,[cjh] ,[srz] ,[flh] ,[dph] ,[bz] ,[xpdx] ,[xpgs] ,[xpxs] ,[scrid] ,[scr] ,[scsj] ,[scbm] ,[shr] ,[shsj] ,[ecbz] ,[gdr] ,[gdsj] ,[xgsj] ,[flag] ,[ysurl] ,[ysfile] ,[xgurl] ,[xgfile] ,[xwurl] ,[xwnr] ,[textall]) VALUES ( @t_id, @u_id, @tablename, @tm , @jh , @ajh , @gjz , @sjms , @fsdd , @fsrq , @zyrw , @psz , @psrq , @tgz , @zrz , @sc , @ly , @cjh , @srz , @flh , @dph , @bz , @xpdx , @xpgs , @xpxs , @scrid , @scr , @scsj , @scbm , @shr , @shsj , @ecbz , @gdr , @gdsj , @xgsj , @flag , @ysurl , @ysfile , @xgurl , @xgfile , @xwurl , @xwnr , @textall ) set nocount off
从企业管理器中直接导出来的,现在看看也没有什么难的哦,只是因为自己不熟悉,而使得自己在项目时间本来就是很紧张的情况下还因为这个而浪费了不少的时间。
发表在 SQL Server
评论关闭