什么是git与SQL Server的最佳实践

丹尼斯·马塔福诺夫(Denis Matafonov)

我们有一个带有约1000个存储过程的SQL Server数据库。我们从未使用过git来保存该代码(好吧,我知道)。

现在,当我们有三个数据库开发人员而不是一个时,我们要开始做所有正确的事情,因此我们希望所有代码都保存在git中。

我们恳请就如何完成此事提供建议。

到目前为止,我们看到了两种策略:

1.有一个保留所有程序的文件

看起来像

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID('my_procedure'))
BEGIN
    DROP PROCEDURE my_procedure
END

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].my_procedure ...

因此,运行此大文件将使所有过程都释放,然后重新创建它们。

2.每个存储过程上都有一个文件,其作用与上述相同

优点缺点

第一种方法使我们拥有单个项目代码,您可以在其中始终查看何时,为什么以及由谁更改了任何过程。因此,所有开发人员都将更改单个文件并在发生冲突时合并。但是这种方法会在发布之日杀死所有PLANS,因此可能会减慢数据库的速度(?)

第二种方法使我们可以更改单个过程而不会杀死所有其他过程。但是通过这种方法,我们将拥有1000多个文件,并且知道如何在发布日期更改的文件上运行。

感谢您的指教。

汤姆汤姆

但是通过这种方法,我们将拥有1000多个文件,并且知道如何在发布日期更改的文件上运行。

是的,甚至想象您有表更改。那你怎么办 删除并重新创建所有表?

各种形式的标准方法是具有(手动或自动生成)更改脚本。我们这样做-用文件夹和运行号在git中检入它们,并具有一个同步机制,可以基本上检查尚未运行的并按字母顺序运行它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Server查询-Where子句的最佳实践

从SQL Server的多个表中删除许多记录的最佳实践

SQL Server插入(如果不存在)最佳实践

将.CSV文件导入SQL Server的最佳实践(在性能方面)

在客户端使用SQL Server表的最佳实践

压榨Git提交的最佳实践是什么

Git 和 Chef 最佳实践

RestController的最佳实践是什么?

什么是LDAP认证最佳实践?

在基于 Identity Server 4 的基础架构上注册新用户时,最佳实践是什么?

在括号未同时应用两个条件的情况下,解决SQL Server语句的最佳实践是什么?

编写SQL Server 2008架构更改脚本的最佳实践

带有SQL Server后端查询的MS Access前端存储最佳实践

使用Visual Studio在SQL Server中填充主键值的最佳实践

SQL Server 2008-为表的每一行调用存储过程的最佳实践

使用 Entity Framework Core 在 SQL Server 中存储大字符串的最佳实践

从 SQL Server 或 DB2 迁移到 Snowflake 的最佳实践/经验教训

git add(和)commit的最佳实践是什么

在git仓库中处理密码的最佳实践是什么?

在JDBC中编写SQL查询的最佳实践是什么

连接到SQL数据库的最佳实践是什么?

在我的代码中防止sql注入的最佳实践是什么?

SQL 中自动索引推荐的最佳实践是什么

git:提交(和记录)的最佳实践

Git 分支最佳实践——掌握、生产、登台?

开源项目上git仓库的最佳实践

在Git中分支和合并最佳实践

Qt翻译和git的最佳实践

Symfony & Git:多个网站的最佳实践