gpt4 book ai didi

sql-server - 如何将存储过程添加到版本控制

转载 作者:行者123 更新时间:2023-12-03 07:32:23 25 4
gpt4 key购买 nike

我们的团队第一次经历了没有对我们的数据库进行版本控制的麻烦。我们如何至少将存储过程添加到版本控制中?我们正在开发的当前系统主要依赖于 SP。

最佳答案

背景:我开发了一个拥有近 2000 个存储过程的系统。

我发现的关键是将数据库视为应用程序。你永远不会直接用十六进制编辑器打开一个 EXE 并编辑它。与数据库相同;仅仅因为您可以编辑数据库中的存储过程并不意味着您应该这样做。

将源代码管理中存储过程的副本视为当前版本。这是你的源代码。 check out 、编辑、测试、安装并重新检入。下次必须更改时,请遵循相同的步骤。正如应用程序需要构建和部署过程一样,存储过程也应该如此。

下面的代码是这个过程的一个很好的存储过程模板。它处理更新( ALTER )或新安装( CREATE )的两种情况。

IF EXISTS(SELECT name
FROM sysobjects
WHERE name = 'MyProc' AND type = 'P' AND uid = '1')
DROP PROCEDURE dbo.MyProc
GO

CREATE PROCEDURE dbo.MyProc
AS

GO

但是,在您控制对存储过程的访问的情况下,以下示例会更好。 DROP - CREATE方法失败 GRANT信息。
IF NOT EXISTS(SELECT name
FROM sysobjects
WHERE name = 'MyProc' AND type = 'P' AND uid = '1')
CREATE PROCEDURE dbo.MyProc
AS
PRINT 'No Op'
GO

ALTER PROCEDURE dbo.MyProc
AS

GO

此外,创建一个完全从源代码控制构建数据库的过程有助于保持对事物的控制。

从源代码管理创建一个新数据库。
使用 Red Gate SQL Compare 之类的工具来比较两个数据库并识别差异。
调和差异。

更便宜的解决方案是简单地使用 SQL Management Studio 的“脚本为”功能并进行文本比较。但是,此方法对 SSMS 用于格式化提取的 SQL 的确切方法非常敏感。

关于sql-server - 如何将存储过程添加到版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com