存储过程,消息2812,

时间:2015-08-21 09:32:41

标签: sql sql-server

我已经创建了一个数据库,并且我试图为它制作一些存储过程, 我在我的数据库中添加了一个新的查询文件,并在其中编写了以下代码,

create procedure SEL_STUDENT
as
begin
select * from student
end
execute SEL_STUDENT
go

但是我随时尝试执行以下行

execute SEL_STUDENT

它返回一个错误,说,

  

Ms 2812,Level 16,State 62,Line 53   无法找到存储过程' SEL_STUDENT'

请帮我解决。

感谢。

2 个答案:

答案 0 :(得分:2)

我使用AdventureWorks2012数据库中的表运行您的代码。

create procedure SEL_STUDENT
as
begin
select * from [Person].[Person]
end
go

execute SEL_STUDENT

它工作正常。

虽然我已将GO移到execute SEL_STUDENT之上而不是@CoOl指出的问题,因为您明确说明在代码块之后执行了存储过程。

唯一可能的解释是您在错误的数据库上查询execute SEL_STUDENT

请尝试以下代码 -

USE [DatabaseName] 
GO

execute SEL_STUDENT

这里,[DatabaseName]是存储存储过程SEL_STUDENT表的数据库。

确保您的表格也存储在同一个数据库中,否则您必须将select * from student修改为select * from [DatabaseName].[SchemaName].[student]

此外,您可以使用对象资源管理器来识别存储过程的保存位置。由于声誉低于10,我无法发布如何执行此操作的快照。

编辑:现在我的声誉是两位数 -

enter image description here

请注意,[dbo]是SQL Server中的默认架构。

答案 1 :(得分:0)

因为您正在尝试执行尚未存在的存储过程。

GO移到execute SEL_STUDENT

之上
create procedure SEL_STUDENT
as
begin
select * from student
end
go

execute SEL_STUDENT