2 ilove csdn110 ilove_csdn110 于 2016.02.03 01:22 提问

MySql命令行下创建存储过程的语法错误 1C

delimiter //
create procedure findEmp()
begin
select *from emp;
end //

在当前数据库下查询表emp,这么简单的语句为啥我死活创建不成功?哪里出错啊?
以下是错误提示:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'proce
dure findEmp()
begin
select *from emp;

MySql版本是4.1,emp表当然存在,我是按照书本上的语法敲出来的.

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.03 07:09
 delimiter //
create procedure findEmp()
begin
select * from emp;
end  
//

加上换行和空格再试试看
看你连的数据库是不是正确的,有没有emp表
报什么错,贴出来。

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.03 08:12

不在命令行下能创建成功么

gary16
gary16   2016.02.03 11:17

end后没分号吧

qq_23663693
qq_23663693   2016.02.03 15:06

USE [master] ----------数据库名
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[findEmp]----存储过程名
AS
begin
select * from dbo.spt_values ----表名
end

qq_23663693
qq_23663693   2016.02.03 15:22

看错了,以为是sql server 呢,‘//’代表结束的意思,如果findEmp表存在,这段命令没有错,:
delimiter //
create procedure findEmp()
begin
select * from emp;
end //

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!