存储过程里面set赋值怎么没有起到作用

存储过程里面set赋值怎么没有起到作用,第1张

用selectinto语句

下面是mysql 50的帮助文档的:

这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。

SELECT id,data INTO x,y FROM testt1 LIMIT 1;

注意,用户变量名在MySQL 51中是对大小写不敏感的。请参阅93节,“用户变量”。

重要: SQL变量名不能和列名一样。如果SELECT INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

CREATE PROCEDURE sp1 (x VARCHAR(5))

BEGIN

DECLARE xname VARCHAR(5) DEFAULT 'bob';

DECLARE newname VARCHAR(5);

DECLARE xid INT;

SELECT xname,id INTO newname,xid

FROM table1 WHERE xname = xname;

SELECT newname;

END;

当这个程序被调用的时候,无论tablexname列的值是什么,变量newname将返回值‘bob’。

set和select都可以用来赋值,set只能一次设置一个变量,而select可以同时给多个变量赋值。如:

declare @@id int,@@name char(20)

select @@id=1,@@name='zhang' --同时赋值

--分开来赋值

set @@id=1

set @@name='zhang'

=====================

全局变量以标记符“@@”开头,单个的是局部变量

数据库其实就是个二维表格,可以用数组表示。ASP中的记录集有个getRows()可以从查询的记录集中取到数组,如:set

rs

=

connexecute("SELECT

FROM

admin")dim

RsArrayrsArray

=

rsGetRows()

rowsCount

=

ubound(rsArray,2)'这是记录数,数组的第二维cellCount

=

ubound(rsArray,1)'这是字段数

'你也可以规定取多少记录如:rsArray

=

rsgetrows(10)'取十条记录

可以看出,数组的第一维是字段,第二维是记录行。所以跟你给出的数组正好相反,asp好像再没有别的方法了。

以上就是关于存储过程里面set赋值怎么没有起到作用全部的内容,包括:存储过程里面set赋值怎么没有起到作用、T—SQL中给全局变量赋值的是什么。是SET 或SELECT中的一个嘛还是别的、ASP 数据库向数组赋值问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9297093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存