存儲過程表變數賦值給變數
你用動態查詢的話,可以使用臨時表來解決這個問題,思路是:
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);