Ich versuche, eine Prozedur mit einem einfachen IF-ELSE-Statement
zu schreiben. Aber springen Sie immer einfach in den ELSE-Block. Aber das IF ist wahr.MSSQL-Prozedur IF-Anweisung funktioniert nicht
Ich habe versucht, drei Möglichkeiten
SET @Count = (SELECT COUNT(*) FROM UserTable WHERE Username = @Username AND Password = @Password)
IF @Count > 0
BEGIN
SET @SessionID = CONVERT(varchar(32), NEWID())
PRINT 'IF Clause'
SET @Response = @SessionID
END
ELSE
BEGIN
PRINT 'ELSE Clause'
SET @Response = 'error 401'
END
und
IF (SELECT COUNT(*) FROM UserTable WHERE Username = @Username AND Password = @Password) > 1
und
IF EXISTS (SELECT * FROM UserTable WHERE Username = @Username AND Password = @Password)
ich ein Drehbuch geschrieben, das Verfahren zu testen, es prüfe ich die SELECT-Anweisungen, auch. Sie sind richtig.
Edit: Rufe ich meine Prozedur falsch?
EXEC dbo.UPLogin @Username = 'test', @Password = 'test1234', @Response = @Response Output
SELECT @Response
freundlichen Grüßen
Es ist schwer zu sagen, wenn Sie die Prozedur falsch anrufen, weil Sie nicht die Definition des Verfahrens Post hat; Sie haben nur einen nicht kontextbezogenen Teil davon gepostet. Haben Sie nach der Zeile, in der Sie 'SET @ Count' gesetzt haben, auch 'PRINT @ Count' versucht? –
Ja, Sie haben Recht, aber danke, also habe ich meinen Fehler gefunden. :) Ich habe meine Parameter falsch angegeben. Ich schrieb: Benutzername nvarchar anstelle von Benutzername nvarchar (32) – BHuelse
OK. Schreiben Sie also entweder eine Selbstantwort (z. B. indem Sie die gelöschte bearbeiten, um die Lösung für andere bereitzustellen, oder löschen Sie Ihre Frage, wenn Sie sie nicht mehr benötigen). –