我已经创建了一个数据库,并且我试图为它制作一些存储过程, 我在我的数据库中添加了一个新的查询文件,并在其中编写了以下代码,
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'
请帮我解决。
感谢。
答案 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,我无法发布如何执行此操作的快照。
编辑:现在我的声誉是两位数 -
请注意,[dbo]是SQL Server中的默认架构。
答案 1 :(得分:0)
因为您正在尝试执行尚未存在的存储过程。
将GO
移到execute SEL_STUDENT
create procedure SEL_STUDENT
as
begin
select * from student
end
go
execute SEL_STUDENT