DECLARE
@i
INT
EXEC
p_Out
@i
OUT
--
过程参数赋值时需要加上
OUT
或
OUTPUT
才能得到参数输出的值
SELECT
'
该测试数据库共有
'
+
ltrim
(
@i
)+
'
个用户表
'
AS
用户表数量
--
调用过程查看结果:
EXEC
P_IN
用户表数量
------------------------------------
该测试数据库共有588个用户表
(1
行受影响
)
--创建输出参数的存储过程:IF OBJECT_ID(p_Out) > 0 DROP PROC p_OutGOCREATE PROC p_Out @i INT OUT --要输入的参数后面必须加上OUT或OUTPUTAS SELECT @i = COUNT(1) FROM sysobjects WHERE xtype=UGO--创
很早以前都没弄明白怎样在
存储过程
中
调用
另
一个
存储过程
并取得返回的记录集,因为这个用处很大,在网上也没有找到合适的解决办法,(本人在t-
sql
方面还是不太内行 )有一天突发奇想,试了下,想到用变量表。请大牛们不要喷我,呵呵。
具体的实现方法如下:
存储过程
dbo.hotel_list 返回的数据如下:
id , name
1 , 小明
2 , 小红
定义变量表:
IF
OBJECT
_ID ( 'Production.usp_GetList', 'P' ) IS NOT NULL
DROP PROCEDURE Production.usp_GetList;
CREATE PROCEDURE Production.usp_GetList @prod