如何从SQL Server DB中检索值?

时间:2014-03-02 07:17:56

标签: sql-server tsql

以下查询正常工作:

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 

我无法获得价值。但表中包含ProductNumber('AR-5381')。 我做错了什么?

1 个答案:

答案 0 :(得分:4)

声明变量的默认长度为1。

未指定长度的

nvarchar表示nvarchar(1)

所以跟nvarchar变量只存储字符串中的第一个字符,因为它的长度为1。

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 =@ProductNum