我试图创建一个简单的存储过程,但得到一个奇怪的错误。我是服务器上的系统管理员。创建存储过程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已经存在... –