首页 / 知识
版本控制T-SQL的最佳方法?
2023-04-16 16:56:00

Best way to version control T-SQL?本问题已经有最佳答案,请猛点这里访问。
对表,视图,存储库等进行版本控制的最佳方法是什么? 最好是自动化的或至少是半自动化的:) 谢谢
K Scott Allen的文章说了这一切: 我昨天问了这个,得到了一些不错的答复: 源代码管理中的存储过程/数据库模式 我使用Visual Studio 2008 Pro创建数据库项目(其他项目类型->数据库)。我们已经使用SVN作为代码存储库,因此带有一堆代表存储过程的.sql文件的项目只是放入存储库的另一件事-您可以看到diffs / history等。这与VSS或任何其他功能相同您使用的存储库。 数据库项目的好处是您的项目将记住您的连接字符串,而您要做的就是右键单击.sql文件(或一次选择所有这些!),然后选择运行以在数据库中更新它。这样就可以轻松地从存储库更新.sql文件并全部运行它们以更新所有存储过程,从而验证数据库在几秒钟内即可更新。 您也可以选择创建LINQ项目(Visual C#->数据库),并将所有LINQ代码存储在存储库中。 希望有帮助! 为所有数据库更改编写迁移脚本,并将其保存在存储库中。强制执行仅通过运行脚本对数据库进行所有更改的策略;这样就可以记录已完成的操作,并可以将其还原。调查是否有适用于您喜欢的语言/数据库组合的迁移框架。
我编写了一个DDL触发器,该触发器记录了对SQL对象(触发器,表,SP,视图等)的定义所做的所有更改。我可以很好地从触发器中调用扩展SP,并将详细信息存储在另一个数据库中并将其用作存储库。 尝试使用Randolph,这是我所知道的最好的SQL版本控制工具之一。 我正在使用Visual Studio数据库版本,该版本可以将架构从SQL Server导出到Visual Studio项目中。然后将其存储在Source Control中,并可以将其部署在任何需要的地方。 VS数据库项目不过是一堆脚本,并且是一种笨拙的工作方式。 一种更可靠的方法是使用数据库迁移框架,如果您使用的是.Net,请查看此博客文章,以获取良好的描述http://flux88.com/NETDatabaseMigrationToolRoundup.aspx。 更新 如评论中所述,此页面已不再存在。因此,这是Wayback机器上的最后一个已知快照http://web.archive.org/web/20080828232742/http://flux88.com/NETDatabaseMigrationToolRoundup.aspx 如果您超级懒惰,则可以使用SMO(SQL Server管理对象),或者如果使用2005之前的SQL Server,则可以使用DMO(分布式管理对象)每天编写所有表/视图/存储过程的脚本,然后将该脚本与该脚本进行比较在源代码管理中,如果有任何更改,请签入新版本。您将无法像在脚本中创建所有数据库更改一样拥有漂亮的脚本,但是至少您可以重新创建所有表/存储的程序/视图。例如,在我的表创建脚本中经常有注释。 这是一篇文章,可以帮助您开始编写脚本:http://www.sqlteam.com/article/scripting-database-objects-using-smo-updated。 同样,这主要是因为您太懒于打扰版本控制,并且如果您在一天内两次更改某些内容也无济于事。此外,仍然必须保存并签入任何数据迁移脚本,因为这不会采用临时SQL,而只会采用数据库对象。 |
最新内容
相关内容
linux命令关闭视图?
linux命令关闭视图?,系统,状态,管理,百分比,信息,情况,基础,软件,观察,首次,怎么查看linux正在运行的命令在 Linux 系统中,以下几个命令可以查linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux删除视图命令?
linux删除视图命令?,系统,软件,电脑,管理,地方,环境,地址,检测,情况,名称,ubuntu基本操作窗口打开后,点击屏幕下方的“用户账户(User Accounts)linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉