当前位置: 首页 > 面试题库 >

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

丁成弘
2023-03-14
问题内容

在开发具有许多存储过程的应用程序时,是否应该将它们存储在某种源版本控制系统中(例如源安全,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

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



 类似资料:
  • 问题内容: 首先介绍技术资料: 我们正在使用VS 2008 pro并正在运行MS SQL 2008服务器。对于源代码控制,我们使用Subversion。 我们真的很想让我们的存储过程处于颠覆状态,因此我们可以知道更改的内容,时间等。 但是,要使其正常工作,它必须是无缝的,否则,开发人员将忘记将过程包括在其提交中。 那么,对此有什么好的解决方案吗? 我敢肯定我们不能成为唯一拥有此问题的公司:-) 问

  • 本文向大家介绍sql 判断函数、存储过程是否存在的代码整理,包括了sql 判断函数、存储过程是否存在的代码整理的使用技巧和注意事项,需要的朋友参考一下 下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助。

  • 问题内容: 我一直想知道如何将所有存储过程放在源代码管理下的SQL 2000上。 我们将Subversion用于所有常规源代码,因此,如果有使用Subversion解决该问题的方法,那就更好了。 你有什么想法? 更新16-02-2009:这是我用来导出所有存储过程的vbs脚本: 问题答案: 就像其他人所说的那样,首先将每个存储的proc存储在一个单独的文本文件中,该文件受源代码控制。写一个脚本来删

  • 问题内容: 我遇到了一个问题,其中在SQL Server 2005中授予对特定存储过程的EXECUTE权限不起作用。一些测试人员弄乱了权限- 并发现,如果他们还对存储过程授予了CONTROL权限-则运行正常。现在,他们确信授予CONTROL权限是必经之路。 我知道这不是真的-实际上,我认为真正的问题是用户对存储过程所依据的表没有选择/插入/更新/删除权限。问题是,我似乎无法在网上找到任何可以证明这

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 主要内容:示例Transact SQL 中的存储过程用于一次又一次地节省编写代码的时间。它通过将过程存储在数据库中并通过传递参数来获得所需的输出来实现这一点。 语法: 下面是存储过程创建的语法 - 参数可选:当我们创建一个过程时,一个或多个参数被传递到过程中。存储过程中有3种类型的参数: IN - 过程可以引用参数。该过程将覆盖参数的值。 OUT- 过程不能引用参数,但过程会覆盖参数值。 IN OUT- 参数被