Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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查询?_Sql_Sql Server_Database_Sql Server 2008_Ssms - Fatal编程技术网

如何获取数据库模式更改的SQL查询?

如何获取数据库模式更改的SQL查询?,sql,sql-server,database,sql-server-2008,ssms,Sql,Sql Server,Database,Sql Server 2008,Ssms,我不是一个数据库程序员,但我有一个包含许多表的大型数据库。我的数据库程序员离开了我们一起做的项目。因此,完成那个项目的所有负担都落在我身上。在我的本地服务器上,我对我的应用程序的数据库模式做了很多更改。我注意到笔记本中的所有更改,以便在主服务器上实现它们。但我需要一种快速的方法来使用这些更改更新主服务器上的数据库。因此,我想知道是否有任何方法可以仅为使用SQL server Management Studio或其他工具在本地服务器上完成的更改生成查询?SQL比较工具应该为您提供一个好的解决方案

我不是一个数据库程序员,但我有一个包含许多表的大型数据库。我的数据库程序员离开了我们一起做的项目。因此,完成那个项目的所有负担都落在我身上。在我的本地服务器上,我对我的应用程序的数据库模式做了很多更改。我注意到笔记本中的所有更改,以便在主服务器上实现它们。但我需要一种快速的方法来使用这些更改更新主服务器上的数据库。因此,我想知道是否有任何方法可以仅为使用SQL server Management Studio或其他工具在本地服务器上完成的更改生成查询?

SQL比较工具应该为您提供一个好的解决方案

提供Redgates[SQL Compare]()的免费替代方案

接下来,您应该保留数据库的源代码控制版本

我们公司还将db版本存储在数据库中,并使用版本化的更新脚本
每当实时数据库需要更新时。

您需要为更改生成脚本,并在dev服务器上测试它们,以便在投入生产时知道它们会正常工作。RedGate有一个工具来比较两个数据库之间的模式-它被称为。您可以使用免费试用来完成您的项目。通常,您的最佳选择是在开发环境中进行更改时编写脚本并使其保持最新。如果您使用visual studio,则可以创建数据库项目并在源代码管理中使用架构。然后您可以在本地/服务器/源代码控制的版本之间执行架构比较/更新。我完全同意@bowlturner的观点:如果所有更改都是在按顺序编号的SQL脚本中完成的,那么您只需将这些更改按顺序应用于任何其他系统,使其达到相同的状态。这样您就不需要单独的注释:SQL脚本将是您的注释,只是功能性的注释:)。虽然有几种工具可以进行数据库比较,但通常依靠它们来同步更改不是一个好主意,尤其是当存在复杂的依赖关系甚至涉及数据时。