我已经创建了一个作业,可以根据某些条件删除数据库中的记录,这很好。实际上,作业会在删除记录之前将记录复制到文件中。这意味着我始终拥有已删除数据的副本。
但是,如果需要将删除的数据恢复到数据库中,则为
。我需要将记录重新插入删除它们的位置。意味着插入不应该像我插入新记录那样工作。那可能吗?如果是的话,该怎么做?
这是从数据库中删除记录的SQL代码:
delete from table_1
where Table_1ID IN (select distinct Table_2ID
from Table_2 T2
left join
(select *
from Table3) x on T2.Table_2ID = x.Table_2ID
where ((x.Table3ID is null and T2.DateTime < '2018-12-12')
or x.ExpireDate < '2018-12-12'))
Declare @cmd varchar(1000);
select @cmd = 'bcp "select * from ##DeletedTable_1" queryout '
+ '"D:\Test\Deleted'
+ convert(varchar(10),getdate(),112) -- YYYYMMDD
+ replace(convert(varchar(10),108),':','') -- HHMMSS
+ '.txt" -t,-c -T'
print @cmd
当数据导入到txt文件中时。看起来像这样
144132,3,422,113,64,69,System,2009-09-22 14:20:05.940,2009-09-22 00:00:00.000,2009-09-23 13:49:50.920,-Louise,000000001C5677E2
,因此在字符串周围没有引号。我不知道这是否会成为问题?
我尝试执行以下操作,但没有用。
BULK INSERT mydb.table_1
FROM 'D:\Test\Deleted'
任何建议都值得赞赏