求大家帮忙~ 大家先看看的的这段SQL语句
declare @PrdCode varchar
set @PrdCode='123455'SELECT PrdClassID
FROM Product.Product
WHERE 
(PrdCode=@PrdCode)语句这样写 就查不出来PrdClassID的值
然而 这样写 就能查出来 
SELECT PrdClassID
FROM Product.Product
WHERE 
(PrdCode='123455')
请问我那个语句有什么错误 为什么查不出值来 怎么解决?

解决方案 »

  1.   

    select 之前 先select cout
      

  2.   

    看看PrdCode字段是不是varchar类型的。如果PrdCode是定长的char,例如char[10],那么它会在'12345'后面跟5个空格,从而造成两个字符串不相同。建议做字符串比较的时候,不要用等号 '=',而是用like。
      

  3.   

    declare @PrdCode varchar(50)
      

  4.   

    declare @PrdCode varchar 
    set @PrdCode='123455' 
    select @PrdCode 返回的是1 varchar不指定长度,默认为1
      

  5.   

    知道哪里错误了吧??
    --代码1
    declare @PrdCode varchar 
    set @PrdCode='123455'select @PrdCode--代码2
    declare @t varchar(20)
    set @t='123455'select @t/*
         
    ---- 
    1(所影响的行数为 1 行)                     
    -------------------- 
    123455(所影响的行数为 1 行)
    */
      

  6.   

    =〉declare @PrdCode varchar 
    varchar 后面缺少大小,比如:
    declare @PrdCode varchar(10) 
      

  7.   

    declare @PrdCode varchar 
    应该是你定义参数的错吧 
    把长度加上看看
      

  8.   

    没有给varchar定义长度 
    declare @PrdCode varchar(50)