sql server常规操作之数据导入原创
金蝶云社区-i求知若渴
i求知若渴
8人赞赏了该文章 475次浏览 未经作者许可,禁止转载编辑于2022年11月16日 15:38:08

误删数据怎么办?特别是涉及的表的数量比较多的时候,如何快速从源库导入想要的数据?

您可以试试这个存储过程?

先简单说明说明一下:

--功能:快速从备查库或者备查表获取数据,插入目标库

--不考虑表存在自增列的场景

--字段以目标库的字段为准

--数据范围:备查库表的所有数据,支持设置条件

--参数说明(看变量名就知道,很好懂吧):

@SourceDB 备查库实体名称

@STablename 源表名

@TTablename  目标表名

@where_sql  过滤条件

存储过程定义:
if exists(select * from sys.objects where name='SP_INSERT_FROM_BACKUP' and type='P')
drop procedure SP_INSERT_FROM_BACKUP 
go
CREATE PROCEDURE SP_INSERT_FROM_BACKUP(@SourceDB varchar(100),@STablename  varchar(100),@TTablename  varchar(100),@where_sql  varchar(100))
as
begin
declare @fsql varchar(max)
declare @column varchar(max)
set @column=''
select @column=@column+name+',' from sys.columns where object_id=object_id(@TTablename) order by column_id
set @column=SUBSTRING(@column,1,len(@column)-1)
set @fsql='insert into '+@TTablename+'('+@column+')
select '+@column+'
from '+@SourceDB+'..'+@STablename+' '+@where_sql
print @fsql
exec(@fsql)
end
存储过程调用:
exec SP_INSERT_FROM_BACKUP '[蓝海实业集团]','T_HS_OUTSTOCKINDEXENTRY','T_HS_OUTSTOCKINDEXENTRYbak',''

生产库的任何后台操作都有一定的风险,亲们请务必先备份和测试,以上sql仅供学习交流。

图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!