zoukankan      html  css  js  c++  java
  • mysql和SqlServer 在存储过程写法上的区别

    以一个最简单的查询语句的存储过程为例:

    mysql 版:

    ********不带参数版********

    create PROCEDURE queryStaffProc()  ----注意此处,就算是没有参数,也要加(),如果有参数输入或者输出,就写在()中
    BEGIN
    select * from tb_staff ;

    END

    call queryStaffProc;   ---注意此处,调用要用call

    **********带输入参数版*************

    create PROCEDURE queryStaffProc(IN p_StaffNo VARCHAR(20))---括号中可以传入多个参数
    BEGIN
    select * from tb_staff where StaffNo=p_StaffNo ;

    END

    call queryStaffProc (‘admin’);  ---传入参数

    **********带输出参数版*************

    create PROCEDURE queryStaffProc(IN p_StaffNo VARCHAR(20),out p_StaffName VARCHAR(20)) --注意输入参数是in,输出参数是out
    BEGIN
    select StaffName into p_StaffName from tb_staff where StaffNo=p_StaffNo ; ---将要输出的内容赋值给输出参数

    END

    call queryStaffProc ('admin',@staffName);  --传入两个参数
    select @staffName  ---获取值

    Sql server 版:

    *******不带参数版********

    create PROCEDURE queryStaffProc  --注意此处,不带(),如果需要定义参数,在下方定义

    AS

    Begin
     select * from tb_staff ;
    END
    go
     
    exec  queryStaffProc    ---注意此处,执行用exec
    go
     
    ***********带输入参数版***********

    create PROCEDURE queryStaffProc  --注意此处,不带(),如果需要定义参数,在下方定义

    AS

    declare @p_StaffNo varchar(20)

    Begin
     select * from tb_staff  where staffNo=@p_StaffNo ;
    END
    go
     
    exec  queryStaffProc  @p_StaffNo='admin'    ---注意此处,两种方式都可以
    exec  queryStaffProc ‘admin’   --必须按参数顺序赋值
    go
     
    ***********带输出参数版***********

    create PROCEDURE queryStaffProc  --注意此处,不带(),如果需要定义参数,在下方定义

    AS

     @p_StaffNo varchar(20),

    @p_StaffName varchar(20) output   --输出参数

    Begin
     select @p_StaffName =StaffName  from tb_staff  where staffNo=@p_StaffNo ;
     
    END
    go
     
    ---调用------
    declare @staffName varchar(20),
    exec  queryStaffProc ‘admin’, @staffName output   --必须按参数顺序赋值
    select @staffName as '姓名'
    go
     
     
     
  • 相关阅读:
    ado.net
    sql基础
    css样式
    HTML基础加强
    socket网络编程
    网络聊天室
    多线程
    WinForm基础
    使用Maven插件(plugin)MyBatis Generator逆向工程
    SpringBoot使用thymeleaf时候遇到无法渲染问题(404/500)
  • 原文地址:https://www.cnblogs.com/menglin/p/8846817.html
Copyright © 2011-2022 走看看