以下查询正常工作:
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')。 我做错了什么?
答案 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