为什么这个T-SQL函数总是返回true?

时间:2010-10-28 05:17:38

标签: c# tsql ado.net sql-function

我写了这个函数,现在它总是返回真实...
有人可以帮助我吗?


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 个答案:

答案 0 :(得分:2)

T-SQL代码似乎很好 - 你如何“总是回归真实” - 在SQL Mgmt Studio中,或者从你的app调用这个函数?

你是如何调用这个函数的,你能告诉我们那段代码吗?

我很快重新创建了设置,在我的情况下,在SQL Server 2008 R2上,当我像这样调用这个函数时,它工作得很好:

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