Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将表结构和数据从db1覆盖到db2_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 如何将表结构和数据从db1覆盖到db2

Sql 如何将表结构和数据从db1覆盖到db2,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在开发一个Grails应用程序,它使用多个数据库,其他数据库是只读的,1是应用程序的一种“主数据库”。此外,还有多个环境:dev、qa、prod。qa用于发布测试,与prod相同 总是在发布测试之前,我需要用“main”prod数据库覆盖“main”qa数据库。我只有SQL用户才能访问运行MS SQL实例的服务器 我需要的是一种魔法,它可以在不删除数据库本身的情况下删除qa数据库中的所有内容,并从prod数据库导入所有内容。数据库包含许多外键约束 如何实现上述目标 附言 我在MySQL上这样

我正在开发一个Grails应用程序,它使用多个数据库,其他数据库是只读的,1是应用程序的一种“主数据库”。此外,还有多个环境:dev、qa、prod。qa用于发布测试,与prod相同

总是在发布测试之前,我需要用“main”prod数据库覆盖“main”qa数据库。我只有SQL用户才能访问运行MS SQL实例的服务器

我需要的是一种魔法,它可以在不删除数据库本身的情况下删除qa数据库中的所有内容,并从prod数据库导入所有内容。数据库包含许多外键约束

如何实现上述目标

附言

我在MySQL上这样做了,但现在我们已经迁移到MS SQL。我的MySQL脚本有点像这样(伪):


您不应该在直接的t-SQL中执行此操作。

您确实应该使用类似于.NET的东西以这种方式导出对象。在纯SQL代码中,没有一种干净的方法可以实现您的要求


如果您计划仅从系统表构建动态SQL,那么有太多的变量需要考虑,这是T-SQL中实现这一点的唯一方法。

我认为该工具完全符合您的需求。您至少需要对qa DB进行“sa”访问。

可能是@MichaelDurrant的副本-他也希望重新创建所有对象,所以这不是问题的副本。是否可以通过JDBC获得数据库的转储/备份?我不是JDBC的用户,所以我不能肯定。谢谢您的输入,但这对我来说不是一个合适的解决方案。
SET foreign_key_checks = 0;
-- Drop all tables..
SET foreign_key_checks = 1;
-- Import prod-dump to DB..