Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Stored Proc Problem
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Divers
Thread ID:
01394196
Message ID:
01394202
Vues:
43
>>This stored proc takes 2 optional params.
>>
>>
>>
>>CREATE PROCEDURE bm_GetClients
>>	@CompanyKey		INT = NULL,
>>	@ClientKey		INT = NULL
>>
>>AS
>>BEGIN
>>
>>	SELECT *
>>		FROM bm_Clients
>>		WHERE CompanyKey = ISNULL(@CompanyKey, CompanyKey) OR
>>			  ClientKey = ISNULL(@ClientKey, ClientKey)
>>
>>END
>>
>>
>>I want to pass either, both, or none. I'm running it like this:
>>
>>
>>DECLARE @CompanyKey	INT
>>DECLARE @ClientKey	INT
>>SET @CompanyKey = 2
>>SET @ClientKey = 5
>>
>>EXEC bm_GetClients
>>EXEC bm_GetClients @ClientKey
>>EXEC bm_GetClients @CompanyKey, @ClientKey 
>>EXEC bm_GetClients @CompanyKey
>>
>>
>>In all cases I'm getting back all records
>
>Change:
>
>WHERE CompanyKey = ISNULL(@CompanyKey, CompanyKey) OR
>      ClientKey  = ISNULL(@ClientKey, ClientKey)
>
>
>to
>
>WHERE CompanyKey = ISNULL(@CompanyKey, CompanyKey) AND
>      ClientKey  = ISNULL(@ClientKey, ClientKey)
>
>
If I change the OR to AND, then the second run returns no records.
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform