2010-04-19 89 views
10

我一直在玩存儲過程。我很激動,我很容易就選擇了它的基礎。 (我也會盡快嘗試觸發器)。現在,我想知道如何將SPROC保存在存儲過程文件夾(Programmability - > Stored Procedure)下,以便我可以通過名稱(最終從我的C#應用​​程序)訪問它。到目前爲止,當我按下保存圖標時,我建議保存整個查詢。這不是我想要的。如何保存存儲過程?

感謝您的幫助

回答

18

實際上,您必須運行CREATE PROCEDURE命令才能生成存儲過程。

Create Procedure - MSDN

下面是一個例子,直接從MSDN頁:

USE AdventureWorks; 
GO 

-- If procedure exists already, drop it 
IF OBJECT_ID ('HumanResources.uspGetAllEmployees', 'P') IS NOT NULL 
    DROP PROCEDURE HumanResources.uspGetAllEmployees; 
GO 

-- Create (or Re-create) the procedure 
CREATE PROCEDURE HumanResources.uspGetAllEmployees 
AS 
    SET NOCOUNT ON; 
    SELECT LastName, FirstName, JobTitle, Department 
    FROM HumanResources.vEmployeeDepartment; 
GO 

請記住,您創建存儲過程後,你將不得不Right Click -> Refresh新程序出現Stored Procedure文件夾。

我還建議將* .sql文件保存在某處,以便在需要再次運行的情況下將CREATE PROCEDURE腳本保存在某處。

+0

+1對於* .sql建議。 – systempuntoout 2010-04-19 19:54:32

+0

@Justin Niesser(和所有):謝謝,它工作。但是,我很抱歉,我沒有真正得到您的建議。我需要將CREATE PROCEDURE腳本保存在某個地方以防我需要再次運行它。存儲過程?每次需要使用它時,我是否需要創建它? – Richard77 2010-04-19 20:04:05

+0

每次使用它時都不需要創建它,但是如果需要修改它或重建數據庫......備份起來很不錯。您還可以繼續使用* .sql文件進行更改並刪除/重新創建該過程,而不是運行ALTER PROCEUDRE命令。 – 2010-04-19 20:07:40

4

您必須實際運行create proc語句。

+0

@Mladen Prajdic:我使用EXEC命令運行它,它工作。當我沒有在Stored Procedure文件夾下看到SPROC時,我雖然沒有創建它。所以我試圖再次創建它,但我被告知具有相同名稱的對象已經存在。我想我能夠創造它。但是,爲什麼它在可編程性 - >存儲過程文件夾下不可見? – Richard77 2010-04-19 19:46:40

+0

@ Richard77,你需要點擊刷新按鈕才能看到它。突出顯示「存儲過程」文件夾,然後單擊刷新,您應該可以看到它。 SQL Server Management Studio(也可能是服務器資源管理器)不會自動刷新。 – 2010-04-19 19:55:22

0

您需要運行CREATE PROCEDURE命令。
嘗試用這種簡單的存儲過程例子:

CREATE PROCEDURE TestSP 
AS 
SELECT GETDATE() AS MyDate 
GO 
0

基礎上OP的評論:

我使用EXEC命令來運行它,它 工作。當我沒有在Stored Procedure文件夾下看到SPROC 時,我仍然沒有創建它。所以我試着 再次創建它,但我被告知 已經存在具有相同名稱 的對象。我想我能夠 創建它。但是,爲什麼它不可見 下的Programmability - >存儲 過程文件夾?

當您第一次運行存儲過程CREATE PROCEDURE....時,可能需要刷新SSMS中的存儲過程列表。右鍵點擊REFRESH。