У меня есть эта странная проблема с одним из моих SP. У меня есть SP, и один из параметров - тип nvarchar. , и я объявляю параметр, я тоже включаю значение, но когда я запускаю, данных нет. короткий пример:sql проблема с параметром хранимой процедуры
@BookName nvarchar = null
Тогда в где положение у меня есть:
AND (o.BookName = @BookName OR @BookName IS NULL)
Никакие данные не возвращаются.
Но когда я делаю:
AND (o.BookName = 'SQL Book' OR @BookName IS NULL)
Я получаю правильные результаты. Просто, чтобы вы знали, что поле не является FK.
Любые идеи в чем причина? Благодаря
UPDATE: SP СОДЕРЖАНИЕ:
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
Как называется SP? – Oded
Как правило, рекомендуется указать, какую базу данных вы используете. NVARCHAR и синтаксис заставляют меня думать, что это Microsoft SQL Server, но вы должны быть конкретными. –
Не могли бы вы показать полный запрос? –