如何从存储过程中返回bool

Mr *_*ket 21 sql-server stored-procedures

我正在尝试研究如何编写一个返回布尔值的store procdure.我开始写下面的一个返回一个int.

USE [Database]
GO
/****** Object:  StoredProcedure [dbo].[ReturnInt]    Script Date: 09/30/2010 09:31:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[ReturnInt]  AS
RETURN 3
Run Code Online (Sandbox Code Playgroud)

我不确定如何写一个返回一个布尔值.

有人可以帮忙吗?它有点价值吗?

Mar*_*ith 31

你不能.没有布尔数据类型,并且过程返回代码只能是一个int.您可以返回a bit作为输出参数.

CREATE PROCEDURE [dbo].[ReturnBit] 
@bit BIT OUTPUT
AS
    BEGIN
    SET @bit = 1
    END
Run Code Online (Sandbox Code Playgroud)

并称之为

DECLARE @B BIT
EXEC [dbo].[ReturnBit] @B OUTPUT
SELECT @B
Run Code Online (Sandbox Code Playgroud)


alg*_*eat 21

用这个:

SELECT CAST(1 AS BIT)

  • 得到它了.大多数时候,我不是在SQL中使用存储过程,而是将数据返回到.NET - 因此使用*bit*而不是逻辑*boolean*对我没有太大影响. (2认同)

Xin*_*Xin 6

您至少有 2 个选择:

SELECT CONVERT(bit, 1)
SELECT CAST(1 AS bit)
Run Code Online (Sandbox Code Playgroud)