小编典典

您是否应该将SQL存储过程存储在源代码管理中?

sql

在开发具有许多存储过程的应用程序时,是否应该将它们存储在某种源版本控制系统中(例如源安全,TFS,SVN)?如果是这样,为什么?是否有使用SQL
Server Management Studio进行操作的便捷前端方法?


阅读 123

收藏
2021-04-17

共1个答案

小编典典

是的。所有代码都应存储在源代码管理中。

简而言之,代码就是代码,并且会发生错误。能够回头看看随着时间的推移发生了什么变化并能够返回到那些变化,这是很好的。

我们必须手动将其添加到源代码管理系统中,但是您可以为Sql
Server管理系统创建附加组件。我从未创建过一个可以自动将其添加到源代码管理中的工具,但是我想您可以。另外,所有代码都存储在sql表中,因此理论上您可以创建一个过程或某种要通过表的东西来检索所有代码并自动提交。

更新:我将始终编写额外的代码来检查代码是否存在以及是否没有创建填充程序,然后实际脚本执行并更改程序。

IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE 
id = OBJECT_ID(N'[dbo].[SomeStoredProcedure]') AND 
OBJECTPROPERTY(id,N'IsProcedure') = 1)

EXEC sp_executesql N'CREATE PROCEDURE [dbo].[SomeStoredProcedure] AS

SELECT ''SPROC Template'''

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

 ALTER PROCEDURE SomeStoredProcedure

拖放并重新创建将删除您为其设置的所有用户权限。

2021-04-17