J'ai ce problème étrange avec un de mes SP. J'ai un SP et l'un des paramètres est de type nvarchar. et je déclare le paramètre, j'inclus la valeur aussi, mais quand je cours il n'y a aucune donnée retournée. court exemple:sql procédure stockée paramètre problème
@BookName nvarchar = null
Puis dans la clause where je:
AND (o.BookName = @BookName OR @BookName IS NULL)
Aucune donnée est renvoyée.
Mais quand je fais:
AND (o.BookName = 'SQL Book' OR @BookName IS NULL)
Je reçois les résultats appropriés. Juste pour vous faire savoir que le champ n'est pas FK.
Des idées quelle peut être la raison? Merci
MISE À JOUR: SP CONTENU:
ALTER PROCEDURE [dbo].[AdvancedSearch]
(
@StartTime datetime = null,
@EndTime datetime = null,
@CustomerEmail nvarchar(255) = null,
@BookName nvarchar = null
)
AS
BEGIN
SET NOCOUNT ON
SELECT DISTINCT o.OrderID, o.OrderTotal FROM Nop_Order o
WHERE (o.CreatedOn > @StartTime OR @StartTime IS NULL)
AND (o.CreatedOn < @EndTime OR @EndTime IS NULL)
AND (o.ShippingEmail = @CustomerEmail OR @CustomerEmail IS NULL)
AND (o.BookName = @BookName OR @BookName IS NULL)
ORDER BY o.OrderID
END
Comment s'appelle le SP? – Oded
Généralement, une bonne idée de mentionner quelle base de données vous utilisez. NVARCHAR et la syntaxe me font penser que c'est Microsoft SQL Server, mais vous devriez être spécifique. –
Pourriez-vous montrer la requête complète? –