當返回記錄我有以下程序SQL Server將返回任何結果,但明確設置
CREATE PROCEDURE [dbo].[Q2_05] (@Ch1 nvarchar, @Ch4 nvarchar, @globalOptionCode nvarchar)
AS
BEGIN
SET NOCOUNT ON;
SELECT [2_05].Ch1, [2_05].Ch4, [2_05].GlobalOption, [2_05].Part, [2_05].[Key]
FROM [dbo.NV300Autostructure].[2_05]
WHERE ((([2_05].Ch1)[email protected]) AND (([2_05].Ch4)[email protected]) AND (([2_05].GlobalOption)[email protected]));
END
問題,當我用下面的參數(「5」,「日」執行它「」)它不返回任何結果,但在消除過程中,我發現修改的條件線和設置[2_05] .Ch4明確爲‘TH’像這樣:
WHERE ((([2_05].Ch1)[email protected]) AND (([2_05].Ch4)='TH') AND (([2_05].GlobalOption)[email protected]));
它返回的行數據庫。爲什麼會發生?
可能值得一讀:[壞習慣踢:聲明VARCHAR沒有(長度)](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick- declaring-varchar-without-length.aspx) – GarethD
@GarethD如果我不確定參數將使用多長時間(在這種情況下,它可能爲1到3個字符長),我仍然可以使用這種類型的查詢嗎? – kacpr
如果你不知道使用最大可能的時間,如果你不知道這個,只需使用'NVARCHAR(MAX)'。 – GarethD