SQL用乙個儲存過程呼叫另乙個儲存過程

2021-06-15 22:03:58 字數 1256 閱讀 1027

一、直接呼叫的例子:

--建被呼叫儲存過程b

create procedure b

@sql nvarchar(500) = null, 

@outpara nvarchar(500) output

asdeclare @sqlstr nvarchar(500)

begin

set @outpara = @sql

end--建呼叫儲存過程a

create procedure a

@sql nvarchar(500)

asdeclare @sqlstr nvarchar(500)

begin

exec b @sql,@sqlstr output

print @sqlstr

exec sp_executesql @sqlstr

end

--執行

exec a 'select * from auditing'

二、根據需要可以靈活變通,如:

alter procedure b

@sql nvarchar(500) = null, 

@outpara nvarchar(500) output

asdeclare @sqlstr nvarchar(500)

begin

set @outpara = 'select * from auditing where flag='+@sql --auditing是表名,flag是乙個int型別的欄位名

end----------------------------------

alter procedure a

@sql nvarchar(500)

asdeclare @sqlstr nvarchar(500)

begin

exec b @sql,@sqlstr output

print @sqlstr

exec sp_executesql @sqlstr

end

----------------------------------

exec a '2' 

三、想實現動態呼叫,可以在a中加一引數@proc,把exec b @sql,@sqlstr output中的「b」儲存過程名換

成對應的引數名@proc,並修改相應sql語句就可以了。上面已經有了兩個例子,懂得用儲存過程的一看就

能明白,在這就不多囉嗦了

SQL 儲存過程裡呼叫另乙個儲存過程

由於建立了乙個儲存過程,並且要在另乙個儲存過程裡呼叫這個儲存過程所以在網上找了一下相關的 現在總結一下,防止以後還會用到 由於這次我寫的儲存過程只需要返回乙個求和的結果,所以我使用了output 引數,即執行了儲存過程以後返回乙個值 具體 如下 create procedure dbo t1 tes...

乙個Ejb呼叫另乙個Ejb

乙個ejb呼叫另乙個ejb有兩種方法 第一是同個jndi 查詢 initialcontext ctx new initialcontext ihelloword helloworld ihelloword ctx.lookup helloworld remote 第二種 通過依賴注入 1 ejb i...

乙個Ejb呼叫另乙個Ejb

乙個ejb呼叫另乙個ejb有兩種方法 第一是同個jndi 查詢 initialcontext ctx new initialcontext ihelloword helloworld ihelloword ctx.lookup helloworld remote 第二種 通過依賴注入 1 ejb i...