2014-03-02 77 views
2

下面的查詢工作正常:如何從SQL Server DB檢索值?

select ProductNumber,Name,Color,ListPrice 
from Production.Product 
where ProductNumber = 'AR-5381' 

凡當, 我在寫我的代碼就像下面從SQL服務器中檢索值:

declare @ProductNum nvarchar 
set @ProductNum = 'AR-5381' 
select ProductNumber,Name,Color,ListPrice 
from Production.Product 
where ProductNumber = @ProductNum 

我不能得到值。但產品編號('AR-5381')出現在表格中。 我做錯了什麼?

回答

4

變量聲明與作爲1

nvarchar而不指定長度缺省長度是指nvarchar(1)

所以以下nvarchar varaible僅第一個字符存儲在字符串中,因爲它的長度爲一個。

declare @ProductNum nvarchar 
set @ProductNum = 'AR-5381' 
SELECT @ProductNum 

輸出
一個

declare @ProductNum nvarchar(2) 
set @ProductNum = 'AR-5381' 
SELECT @ProductNum 

輸出
AR

您應該指定一些長度等。

declare @ProductNum nvarchar(255) 
set @ProductNum = 'AR-5381' 
select ProductNumber,Name,Color,ListPrice 
from Production.Product 
where ProductNumber [email protected] 
+0

太好了!謝謝。 – bapi