刚开始做数据库备份的时候使用.bak做的, 后来数据库和Web分开了 不在同一台机器上了 , 现在的数据备份就是一个问题 , 很久之前查过是否可以通过sql语句生成类似管理器导出的脚本 , 很多人说不行 , 最近看到一篇文档 , 觉得有戏
http://blog.csdn.net/chinahuyong/article/details/9469661
文章地址如上 , 如果可以通过SQL管理器中的dll操作的话是不是就能实现可以备份出sql脚本的了呢 ? 如果有这方面的研究的请不吝赐教, 感谢!
注意 : 不是通过管理器去生成脚本哦 , 是通过C#代码生成脚本 , 需要做什么操作或者有什么公共类可以实现呢 ?
或者有程序和数据库分开部署 然后用程序备份数据库的方法也可以 , 希望不吝赐教
使用 SQL Server CLR Integration 可以实现,参考:
你好 , 我是需要将数据库备份下来以方便还原 , 和迁移 , 并非导出excel文件 .
为什么生成sql语句不行?你把所有的sql语句执行了不就还原了数据库了吗?如果涉及到主键外键的话你把执行语句的先后顺序弄一下不就行了吗
现在任何一个工具都带有这个功能吧
这个是什么工具 , 直接系统集成进去 生成sql文件可以吗 ?
@Cloudoit: 工具是Navicat,不能集成进系统,但是你用这个获得了sql语句再用c#执行一下不就还原了吗?还是说你的需求是通过c#获取的sql语句,再用c#执行来备份?
目前未找到有效方案支持自动备份SQL文件 , 除非自己写对应的程序
已经放弃此方案 , 改用每日备份来解决了
DECLARE
@backupTime VARCHAR(20)
DECLARE
@fileName VARCHAR(1000)
SELECT
@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', ''))
SELECT
@fileName='D:**\DB_'+@backupTime+'_AutoBack.bak'
backup database DB to disk=@fileName