以下查询工作正常:
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。
nvarchar
不指定长度表示 nvarchar(1)
因此以下 nvarchar
变量仅存储字符串中的第一个字符,因为它的长度为 1。
declare @ProductNum nvarchar
set @ProductNum = 'AR-5381'
SELECT @ProductNum
输出
一个
declare @ProductNum nvarchar(2)
set @ProductNum = 'AR-5381'
SELECT @ProductNum
输出
增强现实
您应该指定一些长度,例如。
declare @ProductNum nvarchar(255)
set @ProductNum = 'AR-5381'
select ProductNumber,Name,Color,ListPrice
from Production.Product
where ProductNumber =@ProductNum
关于sql-server - 如何从 SQL Server 数据库检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22124958/