我需要从SQL Server数据库创建一些特定表的每小时.SQB备份文件,每个表都使用WHERE子句进行过滤。例如,我需要这些数据:
SELECT * FROM table1 WHERE pk_id IN (2,5,7)
SELECT * FROM table2 WHERE pk_id IN (2,5,7)
SELECT * FROM table3 WHERE pk_id IN (2,5,7)
SELECT * FROM table4 WHERE pk_id IN (2,5,7)
源数据库上的表的结构可能会随时间而变化,例如:可以添加或删除列,添加索引等
一种选择是在同一个SQL Server实例上的某个登台数据库中执行某种导出,脚本生成等。除了效率之外,每次在目标数据库上删除或截断表都没有问题。简而言之,我希望将表的模式和数据都复制到目标数据库。这完全可以接受。
另一种方法是从源数据库创建.SQB备份。因为.SQB文件就是我真正需要的东西(它将被发送给SFTP) - 那也没关系。
这种情况下的推荐方法是什么?
答案 0 :(得分:2)
如果我正确理解您的要求,您需要将数据库中某些表的数据定期发送到其他地方。
SQL服务器中无法实现的功能是从数据库中备份表的子集。所以,这不是一个选择。
由于您已经提到过您将使用SFTP发送数据,因此使用BCP命令提取数据是一种选择,但BCP命令可能会或可能不会很好地执行,并且它肯定不能很好地扩展。
同样,复制订户数据库有一些选项。
我认为有一种方法可以给猫皮肤,现在你必须决定哪种方法最适合你。