在开发具有许多存储过程的应用程序时,是否应该将它们存储在某种源版本控制系统中(例如源安全,TFS,SVN)?如果是这样,为什么?是否有使用SQL Server Management Studio进行操作的便捷前端方法?
是的。所有代码都应存储在源代码管理中。
简而言之,代码就是代码,并且会发生错误。能够回头看看随着时间的推移发生了什么变化并能够返回到那些变化,这是很好的。
我们必须手动将其添加到源代码管理系统中,但是您可以为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
拖放并重新创建将删除您为其设置的所有用户权限。