存储过程表变量赋值给变量
你用动态查询的话,可以使用临时表来解决这个问题,思路是:
1、将动态查询出来的数据暂存临时表
2、动态查询结束后使用SQL再从临时表中获取存储的数据赋值给变量
3、销毁临时表
B. SQL 将存储过程的结果赋值给变量
set @id=(GetsystemNo 'CXD')
修改为
set @id=GetsystemNo ('CXD')
看看?
C. plsql怎样把存储过程中查询的表的值赋给变量
select count(*) into x from a
在ORACLE里面直接这么写就可以了。
D. Mysql将存储过程执行后的值赋值给变量
Mysql存储过程查询结果赋值到变量的方法
把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码:
drop table if exists test_tbl;
create table test_tbl (name varchar(20), status int(2));
insert into test_tbl values('abc', 1),('edf', 2),('xyz', 3);
drop procere IF EXISTS pro_test_3;
delimiter //
create procere pro_test_3()
begin
DECLARE cnt INT DEFAULT 0;
select count(*) into cnt from test_tbl;
select cnt;
-- 多个列的情况下似乎只能用 into 方式
select max(status), avg(status) into @max, @avg from test_tbl;
select @max, @avg;
end
delimiter ;
call pro_test_3();
E. mssql 的 存储过程 变量赋值问题
自动生成的id 一般是增量的,所以用提取最大值的方法取的最新ID,
设表TABLE0有字段ID,FIELD1,FIELD2,FIELD3四个字段,这样:
DECLARE @NEWID INT--声明新ID变量
INSERT INTO TABLE0(FIELD1,FIELD2,FIELD3) SELECT FIELD1 FIELD2 FIELD3 FROM TABLE1 WHERE FIELD1='XXXX' .......--插入语句
IF @@ROWCOUNT>0 --如果插入了新行
SET @NEWID=(SELECT MAX(ID) FROM TABLENAME) --给新ID赋值
select @newid as 新ID --使用该变量
F. 在存储过程中怎么表的全部数据赋值给变量
不知道是否存在直接输出此类JSON格式的函数或SQL扩展语法。
土一些的方法:
》游标访问表
》对每条记录:组装结果
G. mysql 存储过程怎么赋值
DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_getAllTablesCount`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_getAllTablesCount`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtablesnVARCHAR(100);
DECLAREtableCountINT;
DECLAREstopFlagINT;
DECLAREsqlStrVARCHAR(1000);
--注意:请修改数据库名称
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHEREtable_schema='test';
'02000'SETstopFlag=1;
CREATETABLEIFNOTEXISTStemp_table(table_nameVARCHAR(100),table_countVARCHAR(100));
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SETsqlStr=CONCAT('SELECTCOUNT(1)into@tableCountFROM',tableName);
SELECTsqlStrINTO@sqlStr;
--select@sqlStr;
SELECT@tableCountINTOtableCount;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
SETsqlStr=CONCAT('insertintotemp_tablevalues(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');
SELECTsqlStrINTO@sqlStr;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTtable_name,table_countFROMtemp_tableORDERBYtable_countDESC;
--PREPAREstepFROM@sql1;
--EXECUTEstep;
DROPTABLEtemp_table;
END$$
DELIMITER;
H. SQL SERVER 中怎么把表中的数据赋值给存储过程的变量
declare @id int
select @id = user_id from users where name = '张三' -- 从users表读取张三的user_id,并赋值给变量@id
execute upYourProc @id --将变量传递给存储过程。
I. 存储过程中表名为变量,并且查询结果要赋给另一个变量
赋值号前面是变量名;
赋值号后面是表达式;
表达式可以是常量,比如:a=1;
也可以是:
a=1;
b=a*4+5;
表达式的形式比较多,慢慢接触就熟悉了。
J. 在存储过程中将一个变量的值赋值给某个表的字段中某个变量
用字符串的replace啊。
select@SMTMPSSql=replace(@SMTMPSSql,'@User',@UserCode);