2014-07-09 50 views
2

我在SQL Server中創建過程中,我的代碼如下在數據庫中創建 '主'

CREATE PROCEDURE GetRegistrationId 
( 
    @MaxId INT OUTPUT 
) 
AS 
BEGIN 
    SELECT @MaxId = MAX(UserId) FROM tblRegistration; 
return; 
END 

,但它給錯誤說

CREATE PROCEDURE權限的數據庫被拒絕「拒絕過程的權限主'。

+0

你爲什麼要創建在主存儲的過程,你的意思是創建它在你自己的數據庫? – 3dd

+0

需要在您的問題中添加一些信息。你如何在Sql Server中登錄? (Windows身份驗證/ SQL身份驗證),你有管理員權限嗎?如果您使用SQL身份驗證登錄,那麼您的SQL登錄名是否具有完整的權限? – Shell

回答

5

請嘗試以下任何技術。

在創建過程語句的頂部寫上這個USE [YOUR_DBNAME]

USE [YOUR_DBNAME] 
GO 
CREATE PROCEDURE GetRegistrationId 
( 
    @MaxId INT OUTPUT 
) 
AS 
BEGIN 
    SELECT @MaxId = MAX(UserId) FROM tblRegistration; 
return; 
END 

在SQL Server中,在你SQLQuery Editor從可用數據庫目標數據庫下拉列表,執行你的存儲過程。

如果您仍然有任何問題,請在下面留言。

+0

使用完全限定名稱的第三種方法,OP將會得到相同的錯誤,因爲他仍然試圖在主版本 – Raj

+0

@Raj中創建SP,這要感謝ping。我迷失了一點。 – Dhwani

+1

'CREATE/ALTER PROCEDURE'必須是查詢批處理中的第一條語句。 – Azar

6

試試這個:

USE <Your Database Name> 
GO 

CREATE PROCEDURE GetRegistrationId(@MaxId INT OUTPUT) 
AS 
BEGIN 
    SELECT @MaxId=MAX(UserId) FROM tblRegistration; 
RETURN; 
END 

OR

選擇 「你的數據庫名稱」 從工具欄(SQL編輯器),然後執行該過程

Select your DB

+0

'CREATE/ALTER PROCEDURE'必須是查詢批處理中的第一條語句。 – Azar

1

將上下文切換到您的數據庫將是最好的方法。硬編碼

USE <YourDB> 

在程序的開始,或者使用完全合格的名稱,包括數據庫名稱將使SP的可移植性