在我的程序中,我返回一个int值。
ALTER PROCEDURE [dbo].[GetValue]
-- Add the parameters for the stored procedure here
@ID int,
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
DECLARE @isNew int
SET @isNew=0
DECLARE @returnedValue int
DECLARE @output int
SET @returnedValue=[dbo].fn_GetIsNewLecturer(@ID)
IF(@returnedValue=0)
BEGIN
PRINT 'new'
EXEC @output=[dbo].[GetNew] @ID
SELECT @output
END
ELSE
BEGIN
PRINT 'old'
EXEC @output=[dbo].[sp_GetOld] @ID
SELECT @output
END
RETURN @output
END
它的返回值应为int。但它返回Nullable int?。如何将其更改为int
答案 0 :(得分:1)
试试这个:
select [Output] = isnull(@output, 0)
以下是它应该起作用的原因:
declare @i int
select ni = @i, nni = isnull(@i,0)
into #t
select is_nullable, *
from tempdb.sys.columns
where [object_id] = object_id(N'tempdb..#t')
drop table #t