我試圖創建一個簡單的存儲過程,但得到一個奇怪的錯誤。我是服務器上的系統管理員。創建存儲過程SQL Server錯誤
當我運行下面的代碼,我得到這個錯誤
消息15151,級別16,狀態1,第1行
無法找到對象「保」,因爲它不存在,或者你做不是 有權限。該語句已終止。
我可以在dbo模式中創建過程,然後將其轉移到模式中。我已經在2008年的幾個不同的安裝(R1 & R2)上嘗試了這一點,它有時可以工作,而且大多數情況下不會。
有沒有人有任何建議?謝謝保羅。
if not exists (Select * from sys.schemas Where name = 'Test')
Exec ('Create Schema Test Authorization dbo')
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Test].[Paul]') AND type in (N'P', N'PC'))
DROP PROCEDURE [Test].[Paul]
GO
Create Procedure Test.Paul
As
Select @@ServerName
GO
Create Procedure dbo.[Paul]
As
Select @@ServerName
GO
Alter Schema Test Transfer dbo.Paul
exec Test.Paul1
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'Test')
DROP SCHEMA [Test]
GO
哪一行是錯誤?因爲我看到Alter Schema Test Transfer dbo.Paul應該失敗,因爲Procedure Test.Paul已經創建 – Diego
對不起,我試圖證明第一個創建語句失敗,但我然後能夠執行dbo模式中的第二個,然後將其轉移到正確的模式(測試)。因此運行每段代碼並檢查錯誤。 – SPE109
我得到:#消息15530,級別16,狀態1,行1 名稱爲「Paul」的對象已經存在.''上面的'Alter Schema Test Transfer dbo.Paul'存儲在'Test.Paul' proc已經存在... –