Sql server 如何从SQL server数据库检索值?

Sql server 如何从SQL server数据库检索值?,sql-server,tsql,Sql Server,Tsql,以下查询工作正常: select ProductNumber,Name,Color,ListPrice from Production.Product where ProductNumber = 'AR-5381' 无论何时何地, 为了从SQL Server检索值,我编写了如下代码: declare @ProductNum nvarchar set @ProductNum = 'AR-5381' select ProductNumber,Name,Color,ListPrice from

以下查询工作正常:

select ProductNumber,Name,Color,ListPrice 
from Production.Product 
where ProductNumber = 'AR-5381'
无论何时何地, 为了从SQL Server检索值,我编写了如下代码:

declare @ProductNum nvarchar
set @ProductNum = 'AR-5381'
select ProductNumber,Name,Color,ListPrice 
from Production.Product 
where ProductNumber = @ProductNum 
我无法得到这些值。但ProductNumber('AR-5381')出现在表中。
我做错了什么?

变量是用默认长度1声明的

nvarchar
不指定长度意味着
nvarchar(1)

所以后面的
nvarchar
varaible只存储字符串中的第一个字符,因为它的长度是1

declare @ProductNum nvarchar
set @ProductNum = 'AR-5381'
SELECT @ProductNum 
输出
A

输出
AR

您应该指定一些长度,如

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

变量以默认长度1声明

nvarchar
不指定长度意味着
nvarchar(1)

所以后面的
nvarchar
varaible只存储字符串中的第一个字符,因为它的长度是1

declare @ProductNum nvarchar
set @ProductNum = 'AR-5381'
SELECT @ProductNum 
输出
A

输出
AR

您应该指定一些长度,如

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