Почему эта функция T-SQL всегда возвращает 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 ответ

Решение

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

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

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

SELECT dbo.ValidateCenter('Center1', 'Pwd1')  -- return 1 
SELECT dbo.ValidateCenter('Center1', 'Pwd1333')  -- return 0
Другие вопросы по тегам