T-SQL: wenn vorhanden ist immer true zurück?
Was denken Sie,, ist die Gespeicherte Prozedur immer 1 zurück ?
Ich bin besorgt über die, wenn vorhanden, (..)
BEGIN
DECLARE @IsUserExisting bit
SET NOCOUNT ON
IF Exists
(
Select null FROM G_User WHERE
SamAccountName = @SamAccountName
AND NetBIOSDomainName = @NetBIOSDomainName
)
BEGIN
SET @IsUserExisting = 1
END
ELSE
BEGIN
SET @IsUserExisting = 0
END
Select @IsUserExisting
END
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht, wenn die WHERE-Klausel nichts zurückgibt, FALLS Vorhanden() gibt false zurück, und folglich @IsUserExisting auf 0 gesetzt ist.
Makis bereits Ihre Frage beantwortet, aber ich möchte Folgendes vorschlagen
Könnte man den code vereinfachen mit:
Ich denke, die folgenden noch kürzer, in Ihrem Fall.
ich habe versucht, mit diesem aber, wenn es stimmt sets
@IsUserExisting = -1
!!Sollten Sie nicht verwenden Select Count (), wenn Sie nur testen um zu sehen, ob etwas vorhanden ist. Zwar sollte es wieder Recht schnell in diesem Fall, Wenn EXISTS() gibt true zurück, sofort, wenn es zu einem übereinstimmenden Datensatz. Select Count() wird alle Aufzeichnungen, um Ihnen eine komplette Zählung, also das hinzufügen unnötiger overhead.