问题:
刚开始做数据库备份的时候使用.bak做的, 后来数据库和Web分开了 不在同一台机器上了 , 现在的数据备份就是一个问题 , 很久之前查过是否可以通过sql语句生成类似管理器导出的脚本 , 很多人说不行 , 最近看到一篇文档 , 觉得有戏
http://blog.csdn.net/chinahuyong/article/details/9469661
文章地址如上 , 如果可以通过SQL管理器中的dll操作的话是不是就能实现可以备份出sql脚本的了呢 ? 如果有这方面的研究的请不吝赐教, 感谢!
注意 : 不是通过管理器去生成脚本哦 , 是通过C#代码生成脚本 , 需要做什么操作或者有什么公共类可以实现呢 ?
或者有程序和数据库分开部署 然后用程序备份数据库的方法也可以 , 希望不吝赐教
回答1:
使用 SQL Server CLR Integration 可以实现,参考:
- SQLSERVER使用CLR Stored Procedure导出数据到Excel
- 使用CLR存储过程方便快捷导出数据到Excel
回答2:
为什么生成sql语句不行?你把所有的sql语句执行了不就还原了数据库了吗?如果涉及到主键外键的话你把执行语句的先后顺序弄一下不就行了吗
现在任何一个工具都带有这个功能吧
回答3:
目前未找到有效方案支持自动备份SQL文件 , 除非自己写对应的程序
已经放弃此方案 , 改用每日备份来解决了
回答4:
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