如何从存储过程中返回bool

时间:2010-09-29 20:33:44

标签: 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

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

有人可以帮忙吗?这有点值吗?

4 个答案:

答案 0 :(得分:31)

你做不到。没有布尔数据类型,过程返回代码只能是int。您可以返回bit作为输出参数。

CREATE PROCEDURE [dbo].[ReturnBit] 
@bit BIT OUTPUT
AS
    BEGIN
    SET @bit = 1
    END

并称之为

DECLARE @B BIT
EXEC [dbo].[ReturnBit] @B OUTPUT
SELECT @B

答案 1 :(得分:19)

使用此:

SELECT CAST(1 AS BIT)

答案 2 :(得分:3)

您至少有两个选项:

SELECT CONVERT(bit, 1)
SELECT CAST(1 AS bit)

答案 3 :(得分:0)

DECLARE @bitVariable bit     
SELECT @bitVariable = columnName FROM table WHERE id=id