哦 你可以创建一个和Table1一样结构的(字段类型)比如Table2,然后用两个SQL语句就可以了, Insert Into Table2 Select * From Table1 TrunCate Table Table1 当查询原来纪录的时候你可以查询Table2的纪录,CSND也是这样做的,而且CSND可能是两个数据库,一个是现在使用的一个是历史纪录。 如果需要对Table1和Table2两个数据进行计算,可以用临时表,把筛选出来的记录放入到临时表中。
mustudent 说得不错,是一种方法.如果想把数据保存到数据库外面,可以创建一个文本型(或其它,比如ACCESS)的数据库,进行数据的导出.具体做法,查一下SQL SERVER 联机帮助里的"数据导出"就知道了.
假设你要备份的表为A,此时你建立一个同样结构的表B 备份过程 begintrans'确保备份顺利,在事物中进行操作比较安全 DELETE FROM B INSERT INTO B SELECT * FROM A committrans exit sub err: rollbacktrans删除 Trancate Talbe A恢复 begintrans'在事物中进行操作比较安全 DELETE FROM A INSERT INTO A SELECT * FROM B committrans exit sub err: rollbacktrans思路差不多就是这样了
既然是备份,最好放在不同的地方。备份: cn.Execute "Select * Into " & tablename & " In ""D:\backup\bkup.mdb"" From sometable Where somedate <= '2005-12-31'" cn.Execute "Delete From sometable Where somedate <= '2005-12-31'"恢复: cn.Execute "Insert Into sometable Select * From " & tablename & " In ""D:\backup\bkup.mdb"""
Insert Into Table2 Select * From Table1
TrunCate Table Table1
当查询原来纪录的时候你可以查询Table2的纪录,CSND也是这样做的,而且CSND可能是两个数据库,一个是现在使用的一个是历史纪录。
如果需要对Table1和Table2两个数据进行计算,可以用临时表,把筛选出来的记录放入到临时表中。
备份过程
begintrans'确保备份顺利,在事物中进行操作比较安全
DELETE FROM B
INSERT INTO B
SELECT *
FROM A
committrans
exit sub
err:
rollbacktrans删除
Trancate Talbe A恢复
begintrans'在事物中进行操作比较安全
DELETE FROM A
INSERT INTO A
SELECT *
FROM B
committrans
exit sub
err:
rollbacktrans思路差不多就是这样了
cn.Execute "Select * Into " & tablename & " In ""D:\backup\bkup.mdb"" From sometable Where somedate <= '2005-12-31'"
cn.Execute "Delete From sometable Where somedate <= '2005-12-31'"恢复:
cn.Execute "Insert Into sometable Select * From " & tablename & " In ""D:\backup\bkup.mdb"""