【发布时间】:2014-06-04 10:37:12
【问题描述】:
我有一个 MSSQL 存储过程如下:-
CREATE PROCEDURE [dbo].[user_CheckEMail]
@Email nvarchar(200)
AS
BEGIN
IF EXISTS (SELECT * FROM user_Data WHERE EMail = @Email)
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN 0
END
END
在更改为 MySQL 时,我知道某些事情需要更改。这就是我所拥有的:-
CREATE PROCEDURE server.`user_CheckEMail`(
IN Email nvarchar(200))
BEGIN
DECLARE this_count int;
SET this_count = (SELECT COUNT(*) FROM user_Data WHERE EMail = Email)
IF (this_count > 0) THEN
RETURN 1
ELSE
RETURN 0
END IF
END
在这种状态下,“int”以“语法错误,意外 END_OF_INPUT,期待 ';'”突出显示
通过删除“;” Declare 行丢失了它的错误,但 Set 行现在显示“语法错误,意外 SET,期待 ';'”
如果我完全删除 Declare 语句,则 Set 行很好,并且 If 行返回“语法错误,意外 IF,期待 ';'”
最后,通过放置';'在 Set 语句的末尾,Set 返回错误“语法错误,意外 END_OF_INPUT,期望 ';'”,而 If now 错误“语法错误,意外 IF”
我知道这只是一个基本程序,但我有大约两打要通过并且都显示错误,所以我希望找出我在这里做错了什么,我将能够治愈所有问题......希望如此。
【问题讨论】:
-
您需要用
delimiter语句包围存储过程:dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html。
标签: mysql sql sql-server stored-procedures