要求每天把整个数据库里面每个表里面字段DEL值为“是”的数据移动到另外一个结构跟正式数据库完全一样的专门用来存储被删除的数据的数据库里面,该怎么做?目的就是为正式数据库定期的瘦身,提高效率~

解决方案 »

  1.   

    先select ....into备份表然后在原表中delete那些备份了的数据.
      

  2.   

    作业里
    insert tb FROM OPENROWSET('MSDASQL',
        'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
        pubs.dbo.authors) 
    where ....
      

  3.   

    偶只是举个简单例子而已. 你要是有N个表的话, 就做N次呀.(当然你还得根据各表之间的关系, 决定哪个先删除.)比如:insert into DB2.dbo.table_a(col1, col2....)
    select col1, col2...from DB1.dbo.table_a
    where colN = 'DEL'....DELETE A FROM table_a A
    inner join DB2.dbo.table_a B on a.col1 = b.col1 -- 假设在两表中col1是PK
    ....
      

  4.   


    你是2005的话就特别简单用OUTPUT增强
    delete A 
    output
    deleted.*
    into  table2
    feom table1 A
    where ...
      

  5.   

    DB1.dbo.table_a
    DB2.dbo.table_a
    就是代表2个数据库里面的table_a表的意思了?
    原来这样啊
      

  6.   

    db1--数据库名
    dbo--所有者
    table_a--表名