由于创建了一个存储过程,并且要在另一个存储过程里调用这个存储过程所以在网上找了一下相关的代码,现在总结一下,防止以后还会用到

由于这次我写的存储过程只需要返回一个求和的结果,所以我使用了output 参数,即执行了存储过程以后返回一个值

具体代码如下:

CREATE PROCEDURE [dbo].[t1]
@tes1 float outPut
AS
BEGIN
select @tes1=(select  top 1 id from tb1)
END

调用上面的存储过程

CREATE PROCEDURE [dbo].[t2]
AS
BEGIN
declare @tes1 float
exec t1 @tes1 output
select @tes1
END
另外一种获取在存储过程里调用另一个存储过程的结果集的方法就是创建一个临时表,只要这个临时表的结构和执行存储过程后的结果

一样就可以,如果返回的是一个值就用 insert  into #时表名 exec 存储过程名

PS:如果要向调用的数据库传入参数,可以直接将将参数放到要执行的存储过程后面就可以了

-- 定义中转表,结构与你需要输出的一致,但需要增加 sessionId 和 addTime, -- sessionId 防止并发时出现无法辨别的问题 -- addTime 记录插入时间,便于观察 IF OBJECT_ID('dbo.tmp_transfer1') IS NOT NULL DROP TABLE tmp_tran... 第一种方法: 使用output参数USE AdventureWorks;GOIF OBJECT_ID ( Production.usp_GetList, P ) IS NOT NULL     DROP PROCEDURE Production.usp_GetList;GOCREATE PROCEDURE Production.usp_GetList @product varchar( CALL SP_EMP_REBUILED(); --偶尔用(LINUX 调用 数据库中 存储过程 SQL >EXECUTE SP_EMP_REBUILED; --基本不用 SQL >EXEC SP_EMP_REBUILED; --基本不用 BEGIN SP_EMP_REBUILED; --自动化脚本中常用( 存储过程 内部 调用 一个 存储过程 /LINUX 调用 数据库中 存储过程 ) TEST窗口执行 --手动 调用 时常用(用于手动 调用 存储过程 ) --在开发阶段,有时不想在c#中处理一些表中的字段内容,直接在 存储过程 中处理,--以下是我的在开发时,在 存储过程 中处理日期时,通过 一个 存储过程 调用 一个 存储过程 的实现方法,--第一次运用这种,刚开始不会的,在网上查了一下,感觉有必要写下来,以便下会遇到时方便查阅!刚学 存储过程 不长,--有些代码处理,对高手来说,可能很差劲,还望高... 关于 存储过程 听大家说了N次,始终不太了解,不明白那就去实践一把,话说教是最好的学,那么实践也是如此;了解新事物的起初总会有相同的疑问,它是什么,有什么作用,如何使用,对于 存储过程 的认识也不例外; CREATE PROCEDURE [dbo].[proc_CreateSoldOutStock] @FBillNo varchar(50), -- 已售出库单编码 @FInterID int output, -- 已售id @Errors varchar(50) output -- 错误 BEGIN declare @FMultiCheckStatus varchar(20) --//审核流程状态 declare @FComboBox varchar(... 先建一张测试表:create table WWT_TABLE_TEST(NAME VARCHAR2(2000),AGE NUMBER,SEX VARCHAR2(20),BIRTHDAY DATE)创建被 调用 存储过程 :create or replace procedure wwt_test2(inchar in varchar2,outchar out varchar2... 一、概念如果 一个 对象的定义中引用了其他对象,那么此对象被称为依赖对象(dependent object),此对象所引用的对象被称为引用对象(referenced object)。为了管理方案对象(schema object)间的依赖关系,Oracle 需要记录所有的方案的状态(status):有效的(valid)已经通过编译,可以在被引用时直接使用。无效的(invalid)必须在使用之前进行编译。... 存储过程 (Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次 调用 不需要再次编译,用户通过指定 存储过程 的名字并给出参数(如果该 存储过程 带有参数)来 调用 存储过程 。 1.效率高 存储过程 编译一次后,就会存到数据库,每次 调用 时都直接执行。而普通的 sql 语句我们要保存到其他地方(例如:记事本 上),都要先分析编译才会执行。所以想对而言 存储过程 效率更高。 2.降低网络流量 存储过程 编译好会放在数据库,我.. 遇到其他用户要 调用 本用户的 存储过程 调用 之前要登陆本用户,对 存储过程 进行赋权,具体使用grant:grant给表赋权: grant select/update on table1 to user1; grant 权限 on 表 to 用户 grant给 存储过程 赋权: grant execute on procedurename to user1; grant execute on 存储过程 createprocedurepro_DealDataTime @monthvarchar(255),--月份参数 @resultvarchar(255)output--输出英文月份 set@res...