Sql Server 存储过程调用存储过程接收输出参数,返回值
创建存储过程:
- CREATE PROCEDURE [dbo].[GetCustomers]
- (@rowcount INT OUTPUT)
- AS
- SELECT [CustomerID]
- ,[CompanyName]
- ,[ContactName]
- ,[ContactTitle]
- ,[Address]
- ,[City]
- ,[Region]
- ,[PostalCode]
- ,[Country]
- ,[Phone]
- ,[Fax]
- FROM [Northwind].[dbo].[Customers]
- SET @rowcount=@@rowcount
接收输出参数:
- DECLARE @count INT
- EXECUTE GetCustomers @count OUTPUT
- PRINT @count
2,带返回值
创建存储过程:
- CREATE PROCEDURE [dbo].[GetCustomers]
- AS
- SELECT [CustomerID]
- ,[CompanyName]
- ,[ContactName]
- ,[ContactTitle]
- ,[Address]
- ,[City]
- ,[Region]
- ,[PostalCode]
- ,[Country]
- ,[Phone]
- ,[Fax]
- FROM [Northwind].[dbo].[Customers]
- RETURN @@rowcount
接收返回值:
- DECLARE @count INT
- EXECUTE @count=GetCustomers
- PRINT @count
简单的小例子:
扫描二维码关注公众号,回复:
1564785 查看本文章
CREATE PROC myProc
@year1 varchar(10), --年份
@month1 varchar(100), --多个月份
@Rt1 varchar(100) output --输出参数
AS
BEGIN
set @Rt1=( select name from dbo.tb where id=2) --存储过程中 变量赋值的两种方法
--select @Rt1 = name from dbo.tb where id = 2 --此时输出参数@Rt1已经被赋值(输出参数在我看来,就是传入存储过程的一个引用)
--return -1 有return就会在这儿结束 ,返回值如果有也只能是int
END
执行存储过程:
declare @back varchar(100)
exec myProc '231','fds',@back output --传入@back的引用,在过程中为其赋值,这就是输出参数的作用
select @back name --查询显示并起别名