精华内容
下载资源
问答
  • 创建存储过程

    千次阅读 2018-06-22 15:45:54
    1.使用SQL Server管理平台创建存储过程在SQL Server管理平台中,创建存储过程的步骤如下:(1)打开SQL Server管理平台,展开结点“对象资源管理器”→“数据库服务器”→“可编程性”→“存储过程”,在窗口的右侧...

    1.使用SQL Server管理平台创建存储过程

    在SQL Server管理平台中,创建存储过程的步骤如下:

    (1)打开SQL Server管理平台,展开结点“对象资源管理器”→“数据库服务器”→“可编程性”→“存储过程”,在窗口的右侧显示出当前数据库的所有存储过程。右击,在弹出的快捷菜单中选择“新建存储过程”命令。

    (2)在打开的SQL命令窗口中,系统给出了创建存储过程命令的模板。在模板中输入创建存储过程的Transact-SQL语句后,单击“执行”按钮即可创建存储过程。

    (3)建立存储过程的命令被成功执行后,选择“对象资源管理器”→“数据库服务器”→“可编程性”→“存储过程”命令,可以看到新建立的存储过程。

    2.使用CREATE PROCEDURE语句创建存储过程

    SQL Server还可以使用CREATE PROCERDURE语句创建存储过程。在创建存储过程之气那,应该考虑以下几个方面:

    (1)在一个批处理中,CREATE PROCEDURE 语句不能与其他SQL语句合并在一起。

    (2)数据库所有者具有默认的创建存储过程的权限,它可把该权限传递给其他的用户。

    (3)存储过程作为数据库对象其命令必须符合标识符的命名规则。

    (4)只能在当前数据库中创建属于当前数据库的存储过程。

    创建存储过程语句的语法格式如下:

    CREATE PROC[EDURE] procedure_name[;number]

    [{@parameter data_type}

      [VARYING][=default][OUTPUT]][,...n]

    [WITH

       {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]

    [FOR REPLICATION]

    AS sql_statement[,...n]

    各选项的含义如下:

    (1)procedure_name:新建存储过程的名称。它后面跟的可选项number是一个整数,用来区别一组同名的存储过程。存储过程的命名必须符合标识符的命名规则,在一个数据库中或对其所有者而言,存储的名字必须唯一。

    (2)@parameter:存储过程的参数。在CREATE PROCEDURE语句中可以声明一个或多个参数。用户必须在执行过程时提供每个声明参数的值(除非定义了该参数的默认值)。若参数的形式以@parameter=value出现,则参数的次序可以不同,否则用户给出的参数值必须与参数列表中参数的顺序保持一致。若某一参数以@parameter=value形式给出,则其他参数必须具有相同形式。一个存储过程最多可以有2100个参数。

    (3)data_type:指示参数的数据类型。所有数据类型(包括text、ntext、image)均可以用作存储过程的参数。但游标CURSOR类型只能用于OUTPUT参数,而且必须同时指定VARYING和OUTPUT关键字。

    (4)default:给定参数的默认值。如果定义了默认值,则不指定该参数值仍能执行过程。默认值必须时常量或NULL。

    (5)OUTPUT:表明参数是返回参数。使用OUTPUT参数可将信息返回给调用过程。

    (6)RECOMPILE:表明SQL Server不保存该过程的执行计划,该过程每执行一次都要重新编译。

    (7)ENCRYPTION:表示SQL Server加密syscomments表,该表中包含CREATE PROCEDURE语句的存储过程文本。使用该关键字可防止通过syscomments表来查看 存储过程内容。

    (8)FOR REPLICATION:指定不能在订阅服务器上执行为复制创建的存储过程。只有在创建过滤存储过程时,才使用该选项。本选项不能和WITH RECOMPILE选项一起使用。

    (9)AS sql_statement:执行过程要执行的操作,sql_statement是过程中要包含的任意数目和类型的Transact-SQL语句。

    举例:创建存储过程,从表goods和表goods_classification的连接中返回商品名、商品类别、单价。

    CREATE PROCEDURE goods_info AS

    SELECT goods_name,classification_name,unit_price

    FROM goods g INNER JOIN goods_classifcation gc

      ON g.classification_id=gc.classificaton_id

    存储过程创建后,存储过程的名称存放在sysobject表中,文本存放在syscomments表中。




    展开全文
  • MySQL创建存储过程

    万次阅读 2019-03-27 17:08:44
    Navicat for MySQL创建存储过程及MyBatis调用存储过程 问题描述 一条语句实现向两个表中添加数据 前段时间遇到需求,向一个表中添加数据,获取新增主键值。再向另一个表添加数据,其中一个字段为前一个表的主键值。...

    Navicat for MySQL创建存储过程及MyBatis调用存储过程


    问题描述

    一条语句实现向两个表中添加数据

    前段时间遇到需求,向一个表中添加数据,获取新增主键值。再向另一个表添加数据,其中一个字段为前一个表的主键值。并返回第二次添加的表的自增主键值。上网查到的一个方法为使用存储过程,便按照这个思路试着实现一下,现将过程回忆记录下来。

    项目环境

    SSM框架项目+Navicat管理MySQL数据库

    解决问题

    一、Navicat for MySQL创建存储过程

    1.新建函数→选择“过程”
    在这里插入图片描述
    2.添加参数

    模式:
    IN:输入参数
    OUT:输出参数
    INOUT:既作为输入参数,也作为输出参数

    在这里插入图片描述
    3.写存储过程里面要执行的内容

    CREATE DEFINER=`root`@`%` PROCEDURE `InsertNewConsultation`(IN `user_id` int,IN `doc_id` int,IN `now_time` datetime,IN `disease_id` int,IN `patient_id` int,IN `patient_speak_text` text,OUT `patient_speak_id` int)
    BEGIN
    --声明变量
    DECLARE consultation_id INT;
    	insert into 
    	consultation_basic
    		(user_id,last_reply_text,last_reply_time,consultation_status,doctor_unread_number,disease_id,patient_unread_number,patient_id,doc_id)
    	values
    		(user_id,patient_speak_text,now_time,1,1,disease_id,0,patient_id,doc_id);
    	
    	SET consultation_id = @@identity;
    	
    	insert into 
    	patient_speak
    		(patient_speak_text,patient_user_id,patient_speak_time,isread,consultation_id)
    	values
    		(patient_speak_text,user_id,now_time,0,consultation_id);
    	
    	SET patient_speak_id = @@identity;
    
    END
    

    4.保存即可

    二、MyBatis调用存储过程

    <select id="insertConsultationBasic"  parameterType="com.xxx.platform.entity.NewConsultationCustom" 
     	resultType="com.xxx.platform.entity.NewConsultationCustom" statementType="CALLABLE">
    	{
    		CALL InsertNewConsultation(
    			#{user_id,jdbcType=INTEGER,mode=IN},
    			#{doc_id,jdbcType=INTEGER,mode=IN},
    			#{last_reply_time,jdbcType=TIMESTAMP,mode=IN},
    			#{disease_type_id,jdbcType=INTEGER,mode=IN},
    			#{patient_id,jdbcType=INTEGER,mode=IN},
    			#{patient_speak_text,jdbcType=VARCHAR,mode=IN},
    			#{patient_speak_id,jdbcType=INTEGER,mode=OUT}
    		)
    	}
    </select>
    

    注:调用存储过程时,注意参数顺序不能错。

    展开全文
  • mysql创建存储过程

    2018-06-14 17:11:19
    坑一:MySQL创建存储过程中,存储过程的输入参数变量命名不应该与字段名相同。如果相同,导致的结果就是参数的值将不会是你传入的值,而是变成每条记录的那个字段的值。如果在删除操作时,将会删除整张表的记录,是...

    坑一:

    MySQL创建存储过程中,存储过程的输入参数变量命名不应该与字段名相同。如果相同,导致的结果就是参数的值将不会是你传入的值,而是变成每条记录的那个字段的值。如果在删除操作时,将会删除整张表的记录,是非常危险的。

    #删除存储过程
    drop procedure if exists pro_test;
    #创建存储过程
    DELIMITER //
    create procedure pro_test(IN c_age INTEGER)
    begin
    select * FROM ur_test_z WHERE age = c_age;
    end//

    DELIMITER ;

    注:如果该存储过程定义如下:

    #删除存储过程
    drop procedure if exists pro_test;
    #创建存储过程
    DELIMITER //
    create procedure pro_test(IN age INTEGER)
    begin
    select * FROM ur_test_z WHERE age = age;
    end//

    DELIMITER ;

    查询结果为整张表的记录。

    即使写成这样也不行,查询结果仍会是整张表的记录

    #删除存储过程
    drop procedure if exists pro_test;
    #创建存储过程
    DELIMITER //
    create procedure pro_test(IN age INTEGER)
    begin
    DECLARE var_age INT;
    SET var_age = age;
    select * FROM ur_test_z WHERE age = var_age;
    end//
    DELIMITER ;


    展开全文
  • 第一步:连接数据库后,在“object”窗口中找到“procedures”目录,在该目录上点击右键,选择“new”菜单创建存储过程。       创建后的界面,该存储过程是没有参数的。    第二步:编写...

    第一步:连接数据库后,在“object”窗口中找到“procedures”目录,在该目录上点击右键,选择“new”菜单创建存储过程。

     

     

     

    创建后的界面,该存储过程是没有参数的。

     

     第二步:编写一条代码,编译存储过程。

     创建和编译存储过程到这里就已经完成,下一篇将如何使用存储过程。

     

     

     

    你可能遇到的错误!!!!!!!!

    1.没有处理参数列部分。


     

     

     

     

    2.代码区域没有写任何代码。解决办法:写一句输出语句,或者写“null”也可以。


     

    dbms_output.put_line('打印输出语句----------');

     

     

    行1: 
      CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做test01存储过程, 如果存在就覆盖它; 
    行2: 
      IS关键词表明后面将跟随一个PL/SQL体。 
    行3: 
      BEGIN关键词表明PL/SQL体的开始。 
    行4: 
      dbms_output.put_line('打印输出语句----------');表示打印输出语句。如果没有内容可以写 “NULL  PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 

    行5: 
      END关键词表明PL/SQL体的结束 

     

    展开全文
  • navicat 创建存储过程

    万次阅读 2015-11-07 00:03:37
    navicat创建存储过程图解
  • SQLServer之创建存储过程

    万次阅读 2018-11-01 11:18:45
    创建存储过程注意事项 在 SQL Server、 Azure SQL Database、Azure SQL 数据仓库和并行数据库中创建 Transact-SQL 或公共语言运行时 (CLR) 存储过程,存储过程与其他编程语言中的过程类似。 可以在当前数据库...
  • 创建存储过程检测指定教师、指定节次是否有课; 创建存储过程生成指定班级的课程表; 跪求各位大佬帮帮我~~~~~~~
  • sql server 创建存储过程

    万次阅读 多人点赞 2018-03-01 13:52:52
    右键单击“存储过程”,再单击“新建存储过程”将会创建存储过程模板:让我困惑的 &lt;Procedure_Name, sysname, ProcedureName&gt; 有什么用?搜遍全网 也没答案。。。。上图其实是一个存储过程...
  • 在数据库中创建存储过程: 1在数据库中根据表建立存储过程(记住存储过程的名字【你自己建的】)后面调用的时候直接call +名字(参数) 二.调用存储过程: dao中:public Double findSalEname(String name); ...
  • --存储过程内创建存储过程、函数 ------------------------------------------------------------- CREATE OR REPLACE PROCEDURE cr_ccgchsc(p_num IN VARCHAR2) IS  V_COUNT NUMBER(10); --计数变量  V_SQL ...
  • mysql 创建存储过程

    2018-10-19 15:35:04
    注意 delimiter的意思是将分割号改为// 最后又改为; 所以delimiter与后面的符号要空一格 注意// ;... create procedure wap(in vdate varchar(10) ) ## 创建存储过程 begin declare v_d...
  • NAVICAT如何创建存储过程

    万次阅读 2017-12-01 14:02:56
    以下为navicat 创建存储过程步骤图解: 1. 2. 3. 4.在存储过程正文中是输入一行语句测试用,点击保存 5.输入存储过程名称,点击确定 6.到这来那么问题来了,会提示...
  • dbeaver可以创建存储过程吗?需要有哪些注意的地方,格式是不是需要改?![图片](https://img-ask.csdn.net/upload/201706/26/1498452635_530275)
  • 创建存储过程和java调用存储过程

    千次阅读 2015-12-16 18:05:36
    创建存储过程--get_jobname create or replace procedure get_jobname(v_jobid in varchar2,v_jobname out varchar2) as begin select job_name into v_jobname from schedule_job where job_id = v_jobid; --变量...
  • 创建存储过程Navicat

    2014-02-27 21:10:43
    创建存储过程 本主题介绍了如何通过使用 SQL Server Management Studio(开发IDE)    和 Transact-SQL CREATE PROCEDURE 语句来创建 Transact-SQL 存储过程。 开始之前: 权限 创建存储...
  • postgresql使用创建存储过程

    千次阅读 2019-10-21 17:20:56
    postgresql创建存储过程 create function pr_update_goods_map_code() returns integer language plpgsql as $$ declare recd RECORD; kdId varchar(64); outint_cnt Integer; begin outint_cnt = 0; ...
  • Oracle 创建视图、创建存储过程

    千次阅读 2017-07-24 10:05:08
    --创建视图 create or replace view view_TableA(视图名称) as select * from TableA(视图内容); ...--创建存储过程 create or replace procedure prc_TableB(存储过程名称) as t_na
  • 创建存储过程create procedure

    千次阅读 2019-06-04 17:05:15
    创建存储过程create procedure drop procedure if exists test01; delimiter SETAUTOCOMMIT=0 SET AUTOCOMMIT = 0SETAUTOCOMMIT=0 create procedure test01() begin declare v_cnt decimal (10) default 1000 ...
  • 一:创建存储过程的基本语法 1 无参数的存储过程: create procedure pro_test() begin .....end 2有参数的存储过程: create procedure pro_test1(IN param1 VARCHAR(64),OUT param2 VARCHAR(64))
  • SQLyog下创建存储过程

    千次阅读 2017-06-07 15:12:15
    记:SQLyog中的Query编辑器下,分号分隔符是通知mysql客户端已经输入完成的符号,而存储过程中有很多分号,所以一运行就报错。 解决办法:找到数据库中Stored Proces然后右击选择创建存储过程
  • 创建存储过程,执行存储过程

    千次阅读 2018-07-27 17:18:07
    无参数存储过程 create or replace procedure 存储过程的名称 is begin  xxxx......此处为自己需要执行的sql语句 commit; end 存储过程的名称;   含有入参的存储过程   create or replace procedure ...
  • 在mysql中创建存储过程与函数

    千次阅读 2018-12-21 17:14:14
    1、创建存储过程和函数  存储过程是一条或者多条SQL语句的集合,相当于批处理文件,但是作用不仅仅限于批处理。使用存储过程将简化操作,减少冗余的步骤,同时还可减少操作过程的失误,提高效率。 (1)创建存储...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,974
精华内容 15,589
关键字:

创建存储过程