精华内容
下载资源
问答
  • 解决方法:在存储过程首行加上 SETNOCOUNTON 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息 语法:SET NOCOUNT { ON | OFF }默认情况下为 OFF 当 SET NOCOUNT 为 ON 时,不返回计数(表示受...

    在JDBC中调用 sql server 的存储过程时“该语句没有返回结果集”异常:

    解决方法:在存储过程首行加上   SET NOCOUNT ON  

     

    使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息 

    语法:SET NOCOUNT { ON | OFF } 
    默认情况下为 OFF

    当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。 
    当 SET NOCOUNT 为 OFF 时,返回计数。

    即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。

    当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。

    如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

    SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。

    注释当SET NOCOUNT 为ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。当SET NOCOUNT 为OFF 时,返回计数。 ... 结论:我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化 ...

    SELECT au_lname FROM authors GO USE pubs GO -- SET NOCOUNT to ON and no longer display the count message. SET NOCOUNT ON GO SELECT au_lname FROM authors GO -- Reset SET NOCOUNT to OFF. SET NOCOUNT OFF GO ...

    LastName VARCHAR(128) NOT NULL ) SET NOCOUNT OFF SET @Counter = 1 SET @Start = GETDATE() WHILE @Counter <= 150000 BEGIN INSERT #MyTable (FirstName, LastName) VALUES ('Scott', 'Whigham') SET @Counter = @Counter + 1 ...

    语法: SET NOCOUNT { ON | OFF } 阻止在结果中返回可显示受Transact-SQL 语句影响的行数的消息。备注: 当SET NOCOUNT 为ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。 ...

    时是为服务器与sp _ < " 用户选项", 512 configure > 配置SET NOCOUNT ON 复位@ ROWCOUNT 值@ ROWCOUNT 值重置。 下列语句是从事务处理SQL 帮助有关SETNOCOUNT: Turns off the message returned at the end of each statement that states how many rows ...

    唯一下载软件下载,软件,下载,共享,共享软件,免费,免费软件,汉化,汉化补丁,游戏,游戏下载,软件教程,软件新闻,软件资讯,操作系统,邮件.

    当SET NOCOUNT 为ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。当SET NOCOUNT 为OFF 时,返回计数。 即使当SET NOCOUNT 为ON 时,也更新@@ROWCOUNT 函数。 当SET NOCOUNT 为ON 时,将不给客户端发送存储过程中的每个语句的DONE_IN_PROC 信息 ...

    SET NOCOUNT 使返回的结果中不包含有关受Transact-SQL 语句影响的行数的信息。 语法 SET NOCOUNT { ON | OFF } USE pubs ... SET NOCOUNT ON GO SELECT au_lname FROM authors GO -- Reset SET NOCOUNT to OFF. SET NOCOUNT OFF ...

    SET NOCOUNT OFF; 结果: @i = 2, @j = 1 @i = 2, @j = 2 @i = 1, @j = 1 @i = 0, @j = 0 3) 字段之间, 并行执行 SET NOCOUNT ON; ... UNION ALL SELECT 3, 30; UPDATE @Table SET Id1 = Id2, Id2 = Id1 SELECT * FROM @Table SET NOCOUNT OFF; ...

    转载于:https://www.cnblogs.com/arnoid/p/3408533.html

    展开全文
  • Sqlserver存储过程是时常使用到的一个数据库对象,在存储过程中会使用到Declare来定义存储过程变量,定义的存储过程变量可以通过Set或者Select等关键字方法来进行赋值操作,使用Set存储过程变量赋值为直接赋值,...

    Sqlserver存储过程是时常使用到的一个数据库对象,在存储过程中会使用到Declare来定义存储过程变量,定义的存储过程变量可以通过Set或者Select等关键字方法来进行赋值操作,使用Set对存储过程变量赋值为直接赋值,使用Select则一般从数据表中查找出符合条件的属性进行赋值操作。

    例如,下面定义一个存储过程年龄字段@Age字段。

    Declare @Age int;

    使用Set方式赋值的语句可写作为:Set @Age=32;

    如果我们要从表UserTable中查找出名字为张三的人的年龄,然后将之赋值给@Age变量,就得使用Select方式来赋值了,赋值方式如下:

    Select @Age=Age FROM UserTable Where Name=‘张三’;

    此处使用Select进行赋值的话需要注意个点,Select查询语句一条记录都没查找出来,@Age字段将不会有任何改变,也不会赋值为Null,这个情况博主在实际业务中遇到过,就是使用了while循环,然后在循环中采用Select对特定变量赋值,发现如果Select查询集合为空集的时候,变量值不是赋值为NULL,而是直接保持上一次循环赋值的结果。

    备注:原文转载自博主个人站IT技术小趣屋,原文链接Sqlserver存储过程中使用Select和Set给变量赋值_IT技术小趣屋

    展开全文
  • MySQL存储过程学习整理,游标使用,参数输入输出 MySQL游标使用MySQL存储过程参数用法 MySQL PROCEDURE用法 一、 什么是存储过程 1、可以理解为 sql 语句集,可以同时执行多条sql,实现较复杂的逻辑。 2、关于...

                MySQL存储过程学习整理,游标使用,参数输入输出 MySQL游标使用MySQL存储过程参数用法 MySQL PROCEDURE用法

     

    一、 什么是存储过程

    1、可以理解为 sql 语句集,可以同时执行多条sql,实现较复杂的逻辑。

    2、关于存储过程,这里讲的比较好,请参考:https://www.cnblogs.com/chenpi/p/5136483.html

     

    二、简单的存储过程

    1、 语法:

    CREATE PROCEDURE pro_now() -- 存储过程名称,自定义
    BEGIN -- 开始存储过程
           # 需要执行操作的sql语句集,可对数据表 进行CRUD 操作
           -- insert some sql here
    end; -- 结束存储过程

     

    2、创建一个查询当前时间的存储过程:

    CREATE  PROCEDURE pro_now() 
    BEGIN
        SELECT now();
    end;


               3、调用存储过程: call pro_now();  -- call 关键字, "pro_now()" 存储过程名称

    4、查看已创建的存储过程: show PROCEDURE STATUS [ where name='pro_now'] ;

           补充: 关于mysql查看存储过程函数相关命令

    5、删除存储过程:DROP PROCEDURE pro_now; -- "pro_now" 存储过程名称

     

    三、创建带参数的存储过程

    1、 带输入参数的存储过程, 使用关键字: in

        a、示例如下:

            

    CREATE PROCEDURE pro_now_in(in time  VARCHAR(20) CHARACTER set "utf8")	
            -- CHARACTER set "utf8",设定字符集,解决中文乱码
    BEGIN
    	 SELECT now(),time;
    end;

    b、调用存储过程:

    set @time='当前时间';
    call pro_now_in(@time); --  call pro_now_in('当前时间'); 这样也可以

    c、结果如下:

     

    2、带输出参数的存储过程,使用关键字: out

          a、示例如下:

    CREATE PROCEDURE pro_now_out(out time  VARCHAR(20),out title VARCHAR(20) CHARACTER set utf8)
    BEGIN
    	 SELECT now(),'当前时间' into time , title;
    end;

     

          b、调用存储过程:

    call pro_now_out(@times,@title);
    SELECT @title AS "标题",@times AS "时间";

          c、结果如下:

     

    3、带输入、输出参数的存储过程,使用关键字: inout

          a、示例如下:

    CREATE PROCEDURE pro_now_inout(inout name VARCHAR(20),in title VARCHAR(10), out time VARCHAR(10))
    BEGIN
    	 SELECT CONCAT(name,'<--->',title) AS name,now() into name,time;
    end;

                      b、调用存储过程

    set @name='jack';
    set @title='toady';
    call pro_now_inout(@name,@title,@time);
    select @name as 'name and title',@time as 'time';

     

                      c、结果如下:    

     

    d、理解:

    • in (输入): name 、title
    • out (输出): name 、 time
    • CONCAT(name,'<--->',title) 对应 name 输出、 now() 对应 time 输出

     

    四、创建带流程控制语句的存储过程

    1、if 语句

           a、示例如下:

    CREATE PROCEDURE pro_if(in num INT)
         BEGIN
    	    DECLARE result VARCHAR(20) CHARACTER set  utf8 DEFAULT null;
    	    IF num = 0 THEN  -- 开始if判断,注意用一个等号"="
    	        set result='num 为0啦'; -- 满足条件
    	    ELSEIF num > 0 THEN -- 下一个if判断
    		set result='num 大于 0';
      	    ELSEIF num < 0 THEN
    		set result='num 小于 0';
    	    ELSE -- 所有条件不满足的情况下
    		set result='num is null or other status';
    	    end if; -- 结束if 判断 
    	    SELECT result;
     end;

           b、调用存储过程:

    call pro_if('33');


                      c、结果如下:

     

     

    2、case 语句

        a、示例如下:

    CREATE PROCEDURE pro_case(in num INT)
    BEGIN
    	DECLARE result VARCHAR(20) CHARACTER set  utf8 DEFAULT null;
    	case num  -- 开始case 判断
    	when  2 THEN  -- 满足条件执行
    		set result='num 值是2';
     	 when -2 THEN  
    		set result='num 值是-2';
    	else  -- 所有条件不满足,执行
    		set result='num 不等于2和-2';
    	end case ; -- 结束case语句
    	SELECT result;
    end;

     

        b、调用存储过程

    call pro_case(-2);

     

        c、结果如下:

     

    3、while 循环语句

         a、示例如下:

    CREATE PROCEDURE pro_while(in num INT)
    BEGIN
    	DECLARE i int;
    	DECLARE result int;
    	set i=0;
    	set result=0;
    	while i < num DO -- 开始while 循环
    		set result=result+i;
    		set i=i+1;
    	end while; -- 结束while 循环 
    	SELECT result,i;
    end;


                     b、调用存储过程:

    call pro_while(100);

     

        c、结果如下:

     

     

    五、创建带游标循环的存储过程

    1、示例如下:

    CREATE PROCEDURE pro_cursor(out count int)
    BEGIN
    	declare  paper_id  VARCHAR(1000) ; -- 论文主键id
    	declare doctroName VARCHAR(1000) character set gbk; -- 医生名称
    	DECLARE paper_hos VARCHAR(1000); -- 医院id
    	DECLARE paper_room      VARCHAR(100); -- 医生专业
    	declare done int DEFAULT false ; -- 自定义控制游标循环变量,默认false
    	DECLARE  my_cursor CURSOR for (SELECT id,authorName,hospitalId,room
    							from yee_article_paper_authorid ); -- 定义游标并输入结果集  
    	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE; -- 绑定控制变量到游标,游标循环结束自动转true 
    	OPEN my_cursor; -- 打开游标
    	myLoop:LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到  
    	FETCH my_cursor into paper_id,doctroName,paper_hos,paper_room ;  -- 将游标当前读取行的数据顺序赋予自定义变量12  
    	if done THEN -- 判断是否继续循环  
    		LEAVE myLoop;-- 结束循环
    	END IF;
    	 -- 自己要做的事情,在 sql 中直接使用自定义变量即可  
    	insert into temp(str_id,name,hospitalId,room) 	
    VALUES(paper_id,doctroName,paper_hos,paper_room);
    	COMMIT; -- 提交事务
      END  LOOP myLoop; -- 结束 自定义循环体
    	CLOSE my_cursor; -- 关闭游标
    	# 循环结束后,统计导入个数
    	SELECT count(id)  count from temp into count; -- 计算个数
    end

    补充: 该游标代码可能存在,循环多执行一次的问题,若不小心误导了之前的朋友,深感抱歉。

        MySQL游标循环 多执行一次的解决办法 : https://blog.csdn.net/HaHa_Sir/article/details/103390356 。

     

    参考资料:  MySql 存储过程简单使用(带参数,表CRUD)

           【MySQL】存储过程、游标、循环简单实例

             流程语句 if , case ,while 使用

     

    ---- 还有更多 .... 

    MySQL触发器资料整理创建触发器及查看、删除触发器

    MySQL存储过程学习整理,游标使用,参数输入输出

     MyBatis调用存储过程,MyBatis调用函数的使用方法

    MySQL 创建函数, MySQL定义函数实现汉字转拼音 MySQL汉字转拼音MySQL汉字生成拼音字符串

            MySQL创建视图

            MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法

          解决MySQL游标循环多执行一次的问题

     

     

     

    展开全文
  • 当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。下表列出 SET 与 SELECT 的区别。请特别注意红色部分。   set select 同时对多个变量同时赋值 不支持 支持 表达式返回多个值时 出错 将返回的...
  • 详细介绍了java中的list、map、set存储方式及使用方法,涵盖了多个java大侠的见解,让读者充分了解list、map、set的区别和使用
  • 主要介绍了mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法,结合实例形式较为详细的分析了mysql存储过程创建、调用及变量创建、赋值具体原理、操作技巧与相关...
  • 存储过程中的SET NOCOUNT ON

    热门讨论 2017-05-15 22:36:24
    今天在用存储过程进行数据插入和修改的时候总是得不到自己想要的方法,我一直以为是自己的存储过程写错了,后来发现不是,后来又去检查Sqlhelper但也没有问题,这个问题着实让我想了很久,最后还是在同伴的帮助下...
    今天在用存储过程进行数据插入和修改的时候总是得不到自己想要的方法,我一直以为是自己的存储过程写错了,后来发现不是,后来又去检查Sqlhelper但也没有问题,这个问题着实让我想了很久,最后还是在同伴的帮助下解决的。

    好了,不废话了现在开始分析问题:


    存储过程:


    SET NOCOUNT的作用:

    根据官方说明:阻止在结果集中返回显示受 Transact-SQL 语句或存储过程影响的行计数的消息。在说明中的“备注”部分有这么一段话,注意红字部分: 当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。 如果存储过程中包含一些并不返回许多实际数据的语句,或者如果过程包含 Transact-SQL 循环,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。

    相关链接:http://www.cnblogs.com/hfliyi/archive/2012/05/13/2497721.html

    总结的不好,还望各位不吝赐教! 

    展开全文
  • ORACLE存储过程

    万次阅读 多人点赞 2018-11-02 18:14:48
    oracle存储过程 目录 一.什么是存储过程 二.为什么要写存储过程 三.存储过程基础 1.存储过程结构 2.存储过程语法 3.pl/sql处理存储过程 四.存储过程进阶 1.BUIK COLLECT 2.FORALL 3.pl/sql调试存储过程 ...
  • 2008-09-27 —— 来源于本人的百度文章 [由搬家工具导入]set ansi_nulls [on/off] 与 set quoted_identifier [on/off] 和SET NOCOUNT [on/off]set ansi_nulls [on/off] 跟null等相关 set ansi_nulls off 可以使用=做...
  • sqlplus set用法

    千次阅读 2018-06-15 14:23:17
    set heading off等问题2010-09-01 11:03set heading off——不显示每行的列名set echo off——不重复显示所要执行的sql语句set line 200——设置每行显示200字符set pages 0——不进行分页显示set feed off——不...
  • C++中set用法详解

    万次阅读 多人点赞 2018-03-12 10:45:54
    1.关于set ...vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户...
  • 1、存储过程的概念 存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次调用编译后,再次调用不需要编译。用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它 , 存储...
  • SQL存储过程使用介绍

    万次阅读 多人点赞 2017-04-25 13:54:13
    先将存储过程的相关介绍和使用方法总结如下 ;1. 存储过程的概念存储过程 (Stored Procedure) 是在大型数据库系统中 , 一组为了完成特定功能的 SQL 语句集 , 存储在数据库中 , 经过第一次编译后再次调用不需要再次...
  • SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 Select。对于这两种方式的区别,SQL Server 联机丛书中...当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。 下表列出 SET 与 Sel...
  • 我们接下来就尝试使用存储过程中的变量来保存直接/间接结果。 这些变量是存储过程的本地变量,但是我们得注意,变量必须先声明后,才能使用它。而我们如果要在存储过程中声明一个变量,可以使用DECLARE语句,来看下...
  • 注意@x是3在过程执行之后,这表明执行继续该过程的结束发生错误之后。如果该 DECLARE ... HANDLER语句不存在,MySQL会因为约束而EXIT在第二次INSERT失败后采取默认的action()PRIMARY KEY,并且 SELECT @x会返回 2...
  • MySql存储过程之变量declare set

    千次阅读 2016-08-07 23:14:34
    的数据操作),所以除了SET这种赋值方法,还可以通过SELECT INTO语句将返回的值赋给变量: DECLARE total_products INT DEFAULT 0 SELECT COUNT(*) INTO total_products FROM products 看到这里把...
  • C++ set用法总结(整理)

    万次阅读 多人点赞 2018-08-21 15:59:25
    http://www.cplusplus.com/reference/set/set/insert/ 顺序容器包括vector、deque、list、forward_list、array、string,所有顺序容器都提供了快速顺序访问元素的能力。 关联容器包括set、map 关联容器和顺序容器...
  • 1.SET ANSI_DEFAULTS {ON | OFF} 将一组与SQL Server的运行环境有关的选项设置为SQL-92标准 2.SET ANSI_NULL_DFLT_OFF {ON | OFF} 当数据库选项ANSI null default被设置为true时该SET命令用来确定是否忽略新列 ...
  • c++ set容器存储指针,智能指针用法

    千次阅读 2018-12-29 12:04:25
    c++ set容器存储指针,智能指针用法Set容器存储c++内置变量Set容器存储指向类对象的智能智能对象 Set容器存储c++内置变量 set容器存储基础变量像int,char,或者是string对象,我们不需要去写比较函数,但是如果存储的...
  • 存储过程存储函数(Oracle)存储过程存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程存储函数。存储过程存储函数的区别?存储函数:可以通过return 语句返回函数值。存储过程:不能除此之外...
  • 使用 SET 语句或 SELECT INTO 语句将值指定给变量,也可在声明变量时将其指定为缺省值。可对变量指定字面值、表达式、查询结果和专用寄存器值。 可将变量值指定给 SQL 过程参数或 SQL 过程中的其他变量,也可在...
  • ES6new Set 使用方法

    千次阅读 2020-08-25 19:56:16
    多了不说少了不唠代码说话: <!DOCTYPE html> <html> <head> <title></title> </head> <... let setData=new Set([1,2,"yang"]); console.log(setData)
  • set相关用法

    2018-12-29 10:15:28
    java中Set用法 Set集合的特点: 不能存储相同的元素。 同时因为其是一个抽象的接口:所以不能直接实例化一个set对象。(Set s = new Set() )错误 该接口主要继承于Collections接口,所以具有Collection的一些常见的...
  • JAVA--set用法

    2019-03-28 20:57:56
    不能存储相同的元素。 同时因为其是一个抽象的接口:所以不能直接实例化一个set对象。(Set s = new Set() )错误 该接口主要继承于Collections接口,所以具有Collection的一些常见的方法。 常见的方法: 1 add( ) 向...
  • set用法详解

    千次阅读 2018-07-24 15:18:33
    1.关于set ...vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户...
  • SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT。对于这两种方式的区别,SQL Server 联机丛书中已经有...当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。 下表列出 SET

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 984,476
精华内容 393,790
关键字:

存储过程set的用法