NTD*_*DLS 12 sql sql-server version-control stored-procedures
在开发具有大量存储过程的应用程序时,是否应将它们存储在某种源版本控制系统中(例如源安全,TFS,SVN)?如果是这样,为什么?使用SQL Server Management Studio是否有方便的前端方式?
kem*_*002 26
是.所有代码都应存储在源代码管理中.
简单地说,代码是代码,错误发生.很高兴能够回头看看随着时间的推移发生了什么变化,并能够回到这些变化.
我们必须手动将其添加到源控制系统,但您可以为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
Run Code Online (Sandbox Code Playgroud)
执行删除并重新创建将删除您为其设置的所有用户权限.
在版本控制下获取数据库.查看Scott Allen的一系列帖子.
在版本控制方面,数据库通常是第二类甚至是三等公民.从我所看到的情况来看,那些在一百万年内从未想过编写没有版本控制代码的团队 - 这是正确的 - 可能会完全忘记对应用程序所依赖的关键数据库进行版本控制的需求.我不知道当你的数据库与其他代码完全没有完全相同的源代码控制级别时,你怎么称自己为软件工程师并保持直面.不要让这件事发生在你身上.在版本控制下获取数据库.