2014-06-18 29 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

那麼什麼是「修改選項」? –

相關問題