2014-06-18 89 views
1

我知道如何在SSMS中修改“CREATE PROC”模板,我不知道是否可以修改“ALTER PROC”模板,该模板显示何时右键单击现有存储过程并单击“修改”。当我点击“修改”,剧本“ALTER PROC ......”会产生,我希望我可以这样修改这个就可以生成是否可以修改SSMS中的“更改过程”模板?

IF EXISTS()... DROP PROC ... CREATE PROC ... 

,而不是

ALTER PROC 

或者,如果我可以创建一个新的模板来实现相同的目标,那也是一样。

谢谢。

+0

只是出于好奇,你为什么喜欢滴/创建改变? –

+0

@zespri,我有几个生产数据库应该与开发数据库的结构相同。但他们没有。所以我必须创建一个“拖放和创建”脚本,并在更改存储过程时在所有这些数据库上运行它们,我希望确保存储过程能够成功创建,而不管它们是否存在于数据库中。我们没有复杂的权限配置,所以我认为这种方式没问题。 – Ricky

回答

0

我不认为有,但你可以变得非常接近伪造它。为“if exists ... drop”部分创建一个片段(在我的SSMS版本中,工具菜单中有一个代码段管理器)。现在,编写你的程序,在顶部插入你的代码片段,你应该很好。

如果我没有提到丢弃过程会丢弃任何已经被授予或拒绝的显式权限,那么我将会失职。如果你这样做,让你得到一个幂等剧本,我已经通过了这个成语来避免这样的问题:

if object_id('someSchema.yourProc') is not null 
    set noexec on; 
go 
create procedure someSchema.yourProc 
as 
    print 'not yet implemented' 
go 
set noexec off; 
go 
alter procedure someSchema.yourProc as 
begin 
    -- your actual proc 
end 
+0

snippet是个不错的主意。我们没有复杂的权限配置,因此可以随时删除和创建。 – Ricky

-2

是,在修改选项,您可以直接修改或改变中国作为

ALTER PROCEDURE [dbo].[sp_name] 
    @paramater INT , .... other 
AS 
BEGIN 
    .... statement 
END 

以下选项好事,是什么,当你给某一个或部署在服务器上。它很好给予以下类型的声明。

哪一个过程存在或不存在,如果存在,则首先删除然后创建。

IF EXISTS()... DROP PROC ... CREATE PROC ... 

修改选项意味着右键单击并修改直接给出的修改选项,这对于开发目的很有好处。你知道开发像alter table或更改sp参数名称。这也包括当你给当前某人的时候。

虽然给了一些,很好的存在和删除和创建选项,所以第三方容易执行没有错误。

+0

什么是您在第一行中提到的“修改选项”? –

+0

因为虽然发展,你不能下降和创建。只需要修改并执行它。因为你知道一切,并验证。在部署时,你并不知道一切。 – Ajay2707

+0

那么什么是“修改选项”? –

相关问题