Почему эта функция 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