在存储过程中返回 True 或 False 值
Returning a True or False value in a Stored Procedure
我正在尝试在 SQL Server Management Studio 中创建一个存储过程,我可以在其中找到属于具有特定状态的特定供应商的 table 中的任何发票。例如,我的 VB 应用程序中有供应商 123456,我想查找他们在我的 InvoiceTable 中是否有任何发票,其中状态 = B 且 return 为真值或假值。这是我到目前为止一直在尝试的:
ALTER PROCEDURE [dbo].[CheckStatus]
@VendorNumber char
AS
BEGIN
Select distinct
CASE WHEN OrderStatus = 'B' and VendorNumber = @VendorNumber then 'true' else 'False' END as Status
from InvoiceTable
END
现在它总是 return 是一个单一的 "False" 值,无论 orderstatus = B 和 vendornumber = @vendornumber 与否。
我不确定这是否可行,或者我什至在正确的页面上
I want to find if they have any invoices in my InvoiceTable where the
status = B and return either a true or false value
IF (SELECT COUNT(*)
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
) > 0
SELECT 'True'
ELSE
SELECT 'False'
你可以试试这个
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
SELECT 'True'
ELSE
SELECT 'False'
DECLARE @Result varchar(10)
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
BEGIN
SET @Result = 'True'
END
ELSE BEGIN
SET @Result = 'False'
END
RETURN @Result
注意 - 您可以使用 bit 而不是返回 'True' 或 'False'
我正在尝试在 SQL Server Management Studio 中创建一个存储过程,我可以在其中找到属于具有特定状态的特定供应商的 table 中的任何发票。例如,我的 VB 应用程序中有供应商 123456,我想查找他们在我的 InvoiceTable 中是否有任何发票,其中状态 = B 且 return 为真值或假值。这是我到目前为止一直在尝试的:
ALTER PROCEDURE [dbo].[CheckStatus]
@VendorNumber char
AS
BEGIN
Select distinct
CASE WHEN OrderStatus = 'B' and VendorNumber = @VendorNumber then 'true' else 'False' END as Status
from InvoiceTable
END
现在它总是 return 是一个单一的 "False" 值,无论 orderstatus = B 和 vendornumber = @vendornumber 与否。
我不确定这是否可行,或者我什至在正确的页面上
I want to find if they have any invoices in my InvoiceTable where the status = B and return either a true or false value
IF (SELECT COUNT(*)
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
) > 0
SELECT 'True'
ELSE
SELECT 'False'
你可以试试这个
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
SELECT 'True'
ELSE
SELECT 'False'
DECLARE @Result varchar(10)
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
BEGIN
SET @Result = 'True'
END
ELSE BEGIN
SET @Result = 'False'
END
RETURN @Result
注意 - 您可以使用 bit 而不是返回 'True' 或 'False'