/****** Object: StoredProcedure [dbo].[test] Script Date: 06/16/2009 14:16:26 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[test]
go
create proc test
(@In int=0,
@Out int=0 output)
as
begin
--set @Out=@In+1
select @Out
end
go
declare @Test int
exec test @Out=@Test output
select @Test
该例子中输出参数@Out的默认值0似乎根本没有起作用。
采用一下方式可以输出参数默认值
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[test]
go
create proc test
(@In int=0,
@Out int=250 output)
as
begin
--set @Out=@In+1
select @Out
end
go
exec test
但问题是如果我们不用select @Out输出@Out,该参数的默认值又如何获取呢?