Почему эта функция T-SQL всегда возвращает true? - PullRequest
0 голосов
/ 28 октября 2010

Я написал эту функцию, и теперь она всегда возвращает true ...
Кто-нибудь может мне помочь?


Create FUNCTION dbo.ValidateBranch
(
    @BranchID   nvarchar(50),
    @Password   nvarchar(50)
)
RETURNS bit
AS
    BEGIN
    declare @Res bit

    if exists(Select * From TPasswords Where (BranchID = @BranchID) and (isSecurity = 0) and (Pass = @Password)) 
        set @Res = 1
    else
        set @Res = 0



    RETURN @Res
    END

и я так называю позывной:


bool isValidBranch = taQueries.ValidateBranch(IDBranch, PasswordTextBox.Text) ?? false;

1 Ответ

2 голосов
/ 28 октября 2010

Код T-SQL выглядит нормально - как вы «всегда возвращаете истину» - в SQL Mgmt Studio или из вашего приложения, вызывающего эту функцию ??

Как вы вызываете эту функцию, можете ли вы показать нам этот кусок кода?

Я быстро воссоздал настройку, и в моем случае, на SQL Server 2008 R2, она работает нормально, когдаЯ называю эту функцию так:

SELECT dbo.ValidateCenter('Center1', 'Pwd1')  -- return 1 
SELECT dbo.ValidateCenter('Center1', 'Pwd1333')  -- return 0
...