怎么把数据库的结构及数据内容等用SQL语句导出备份起来!(300分)

  • 主题发起人 主题发起人 dedema
  • 开始时间 开始时间
D

dedema

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么把数据库的结构及数据内容等用SQL语句导出备份起来!
以致在恢复数据库时只要用上OSQL.exe /S /U sa /P /i aaa.sql
aaa.sql为一个文本文件,内容就是用SQL语句导出的内容。
不要用restore,也不要用sp_attach_db的。因为这两个没办法
从一个客户端向数据库服务端重建数据库的。
 
那就隻能用script了
 
没什么好办法, 从系统表中读出库信息和表结构, 从表中读出数据, 然后在本地生成sql语句保存。 (老实说将数据表的记录生成sql插入语句过分了点)
导入就很简单了。 只要执行生成的那个sql语句即可。
 
用sql代碼先建一個數據庫
再用sql代碼生成表、索引、視圖等數據庫對象
沒有什麼導不導的
要導就隻能用DTS了,這個你肯定不行的。
 
说一个简单的办法,将你的想法都用DTS执行一下,再SQL事物跟踪器中查出语句
然后放在你的程序中,OK
 
备份
backup database databasename to disk='e:/backup/dbname_bak.dat' with init
还原
restore ....

参考以前大富翁上的文章
只要将整个数据库备份就行了,结构、数据都有了
 
光导结构用PD就可以,数据就备份好了。
 
在企业管理器中,选中数据库,再右键单击选所有任务中的生成sql脚本,
那样是可以生成表结构的。但没有数据。
如果用DTS,也不是用sql语句就可以还原的。
 
有些东西是没有办法用SQL语句来保存的,比如TEXT类型的数据
除非你的数据表都是一个如整型,字符串一类的简单类型,那么这样做是没有问题
但是占用空间肯定大,因为有一大堆重复的insert into语句
非要这样做的话可以用下面的语句,比如要备份一个表Test(ID Integer, Data Float):
select 'insert into Test(ID, Data) values('||ID||','||Data||')' from Test;
其中“||”是Oracle中的字符串相加的符号。
生成的语句就象下面这样:
insert into Test(ID, Data) values(1,1.5)
insert into Test(ID, Data) values(2,12.5)
...
要恢复的时候执行就OK了。
当然,还是建议你用SQL Server自己带的功能来完成备份工作:
backup database ....
 
我有一个工具是可以把数据用SQL备份出来的。
这里我想知道各位有何高见的?
 
“把数据用SQL备份出来”没有问题,但是要把所有数据备份成SQL就不可能
 
intrain的方法是可以的
 
但是这种方法,如果发生在以下的这种情况就不灵了。
那就是从一台客户机向数据库所在的服务器备份恢复一个数据库。
 
如果是局域网那还是可以的。
只要把客户机你要保存备份的那个目录共享出去。
然后backup和restore的disk='文件全路径'即可。 例如'//abc/c/backupdata.bak'。
 
同意Another_eYes,事实上我现在给客户作的也就是这样
不过如果你的数据量比较大的话就要求网络比较快,至少要百M以上。
我现在数据库是40多个G,备份一次要两个多小时。
同样也影响到恢复速度,速度太慢,有的时候对于关键业务是不可接受的。
 
看来基本上得到结论啦!谁给分了。
我的帐号还有另一个小弟在用,欢迎大家帮他UP一下。
 
多人接受答案了。
 
后退
顶部