怎么会得不到正确结果呢,不是 aabb ?
变量A和B的初始值不能那样设置,应该这样:
DECLARE @A nvarchar(100)
DECLARE @B nvarchar(100) 
DECLARE @C nvarchar(100)select @a='aa',@b='bb'SET @C = @A + @Bselect @c

解决方案 »

  1.   

    To lightJing:
    你说的方法也不行啊我现在遇到的问题是这样的
    有两个表
    Product:--主表
      ProductCode   nvarchar
      ProductColor  nvarchar
    ProductDetail:--子表
      ProductCode   nvarchar
      ProductColor  nvarchar
    因为以前是把ProductColor放在子表里的,一个ProductCode可以对应多个ProductColor。
    现在我想不用子表了所以想写个存储过程把子表里每个产品对应的颜色串成一个字符串(用"|"分隔)写到主表里的一个字段里。可是我用上面的写法,就是不能把字符串连起来.
      

  2.   

    兩個變量剛開始都是空值的﹐所以兩個加起來也是空值DECLARE @A nvarchar(100) 
    DECLARE @B nvarchar(100) 
    DECLARE @C nvarchar(100)set @A== 'aa'
    set @B== 'bb'SET @C = @A + @B
    print @C結果﹕aabb
      

  3.   

    declare @a varchar(100),@b varchar(100),@c varchar(100)
    set @a='aa'
    set @b='bb'
    set @c=@a+@b
    print '@c values is :'+ @c--结果是
    @c values is :aabb
    我今天写类似的语句的时候,没有写 set ,找了半天。大家不要凡同样的问题呀!
    当然,我是菜鸟!
      

  4.   

    我的存储过程是这样写的
    CREATE     PROCEDURE ConvertProdProperty
    AS
    BEGIN DECLARE @strColors varchar(250)
    DECLARE @strSizes varchar(250)
    DECLARE @strColor varchar(30)
    DECLARE @strSize varchar(30)
    DECLARE @strTemp varchar(30)
    DECLARE @strProductCode varchar(10)
    DECLARE @strSql varchar(200) DECLARE product_cursor CURSOR
    FOR SELECT  top 1 product_code
    FROM Product_properties OPEN product_cursor FETCH NEXT FROM product_cursor INTO @strProductCode WHILE @@FETCH_STATUS = 0 BEGIN

    DECLARE product_detail_cursor CURSOR FOR SELECT product_color,product_size
    FROM Product_Properties
    WHERE Product_Code = @strProductCode open product_detail_cursor FETCH NEXT FROM product_detail_cursor INTO @strColor,@strSize

    WHILE @@FETCH_STATUS = 0 
    BEGIN

    SET @strTemp = @strColor + '|'
    SET @strColors =  @strTemp + @strColors
    PRINT @strColors     --这里有问题strColors的值不正确


    FETCH NEXT FROM product_detail_cursor INTO @strColor,@strSize
    END

    DEALLOCATE product_detail_cursor

    --SET @strSql = "UPDATE [Product] Set ProductColor =" + @strColors + " WHERE Product_Code =" +  @strProductCode
    --EXEC (@strSql)
    --SET @strSql = "UPDATE [Product] Set ProductSize =" +  str(@strSizes) + "  WHERE Product_Code =" + str( @strProductCode)
    --EXEC (@strSql)


    FETCH NEXT FROM product_cursor INTO @strProductCode
    END

    DEALLOCATE product_cursor
    END结果不正确,麻烦哪位帮我看看原因。
      

  5.   

    DECLARE @A nvarchar(100) 
    DECLARE @B nvarchar(100) 
    DECLARE @C nvarchar(100)set @A== 'aa'
    set @B== 'bb'SET @C = @A + @B
      

  6.   

    top 1 根本不用循环
    FETCH NEXT FROM product_cursor INTO @strProductCode
    if (@@FETCH_STATUS = 0)
    begin
    第二个游标循环end 
      

  7.   

    liushengni(雪碧)   的方法是可以啊,我试过了,真该谢谢他这里的关键问题是:表达式左右两边的变量名不能重复,用select @C = @A + @B再试一下看看