我的SP有一個奇怪的問題。 我有一個SP,其中一個參數是nvarchar類型。 和我聲明的參數,我也包括值,但是當我運行沒有數據返回。 簡單的例子:sql存儲過程參數問題
@BookName nvarchar = null
然後在where子句我有:
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 2010-11-13 20:45:24
通常一個好主意是提及你正在使用的數據庫。 NVARCHAR和語法使我認爲它是Microsoft SQL Server,但你應該是特定的。 – 2010-11-13 20:45:41
您能否顯示完整的查詢? – 2010-11-13 20:46:39