and c.CustomerID='@c.CustomerID'这里的@c.CustomerID应该替换成一个GUID

解决方案 »

  1.   

    不知道LZ的@c.CustomerID是一个变量呢,还是字符串。
    从提示的错误看似乎是c.CustomerID是一个GUID,如果@c.CustomerID是一个变量的话,应该先将其转化为GUID
      

  2.   


    --你的参数现在是这个样子的
    declare @p varchar(30)
    set @p='@c.CustomerID'
    select @p
    /*
    @c.CustomerID
    */--应该是这个样子的
    declare @p1 varchar(36)
    set @p1=newid()
    select @p1
    /*
    AE9508EE-24D1-4AF2-9285-18373B
    */
      

  3.   

    declare @CustomerID varchar(50)
    set @CustomerID='990CC7DF-FE11-40C0-8ECC-6546E2A28119'
    select convert(uniqueidentifier,@CustomerID)
      

  4.   

    c.CustomerID是uniqueidentifier类型的...
      

  5.   

    但是你用单引号把它引起来,他就不表示字段而表示一个字符串了,固定显示为'@c.CustomerID'。
      

  6.   

    既然这样,为什么在and c.CustomerID='@c.CustomerID'这里用'@c.CustomerID'呢?
    如果是变量的话,不能加单引号吧。
    而且@c.CustomerID这种变量名也是不合法的,不能有.
      

  7.   

    and c.CustomerID='@c.CustomerID'
    去掉单引号
    and [email protected]
    即可
      

  8.   


    威武,解决了GUID传值的问题,外部用字符串,SQL内部转换就可以了!