如何使用 cmd 在 SQL 中创建存储过程?

Posted

技术标签:

【中文标题】如何使用 cmd 在 SQL 中创建存储过程?【英文标题】:How to create stored procedures in SQL using cmd? 【发布时间】:2019-09-17 11:41:54 【问题描述】:

这是我尝试过的。我有一个名为crop 的表,并且想要创建在该表中选择所有的存储过程。

这是我得到的错误:

MariaDB [sample]> CREATE PROCEDURE AllFarmers
    -> AS
    -> SELECT * FROM crop
    -> GO;

ERROR 1064 (42000):您的 SQL 语法有错误;检查 与您的 MariaDB 服务器版本相对应的手册 在第 2 行的“AS SELECT * FROM crop GO”附近使用的语法

提前感谢您的帮助

【问题讨论】:

在我看来您来自 SQL Server 世界。 mysql 存储过程语法不同。阅读本文以查看示例。 dev.mysql.com/doc/connector-net/en/… 令人抓狂,不是吗? 检查这个:***.com/a/15786615/2469308 完美运行。谢谢马杜尔 【参考方案1】:

我看到您的程序中的语法不正确。您应该用 BEGIN 替换 AS,用 END 替换 GO。

我在这里举个例子

delimiter //
CREATE PROCEDURE AllFarmers ()
BEGIN
SELECT * FROM Test;
END;
//
call allfarmers()

试试看有什么问题告诉我

【讨论】:

CREATE PROCEDURE AllFarmers () SELECT * FROM Test; 是shortest,您可以在 MySQL 和 MariaDB 中编写。因为单个语句不需要使用 BEGIN / END 块,也不需要使用 DELIMITER 【参考方案2】:

可能还值得一提的是,如果存储过程已经存在,您可以从头开始:

DROP PROCEDURE IF EXISTS `AllFarmers`

【讨论】:

以上是关于如何使用 cmd 在 SQL 中创建存储过程?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server中创建一个存储过程中的varchar型的输入参数默认值为空

如何在 SQL 中创建具有以下条件的 DB2 存储过程?

如何在存储过程中创建视图

如何在mysql数据库中创建一个包含请求的存储过程

在oracle中创建带参存储过程,传进去的参数可以为空么?在存储过程中要如何判断传进来的值是不是为空。

当数据在 SQL Server 中时,如何通过 ADO 在 Access 中创建报表?