在update语句中, role=@us  这里的@us是字段值, 怎么又变成字段了, 搞不懂.

解决方案 »

  1.   

    to:zjcxc(邹建)
    我是定义两个变量!其实可以不要的!
    只是想实现从ZZZCH改为EFWCH的方法,在SQL语句里!
    @us=是我用来想得到转变后的值的!
    这些可以不要!
    能写出转变过程吗
      

  2.   

    declare @us nchar(30),@dep nchar(30)
    select @dep =Materialdata_Reqdepartment from FORM_Materialdata where  taskid = <%=sysTaskID%>
    这句查询的结果格式这样“ZZZ...”
    通过改变后格式这样“EFW...”
    把格式传给ROLE
    这里就是我想实现的 update FORM_Materialdata set role =? where taskid = <%=sysTaskID%>
      

  3.   

    update FORM_Materialdata 
    set role=replace(rol1,'ZZZ','EFW')
    where  taskid=@taskid
           and role like '%ZZZ%'
      

  4.   

    declare @us nchar(30)
    --取得@us的值,假设为'ZZZ001'
    select @us='ZZZ001'
    update FORM_Materialdata 
    set role =replace(@us,'ZZZ','EFW')
    where @taskid =@taskid 
      

  5.   

    declare @us nchar(30),@dep nchar(30)
    select @dep =Materialdata_Reqdepartment from FORM_Materialdata where  taskid = <%=sysTaskID%>
    这句查询的结果格式这样“ZZZ...”
    通过改变后格式这样“EFW...”
    把格式传给ROLE
    这里就是我想实现的--那还要定义@us,@dep做什么,都用不到啊,你其实就是只是操作一个表FORM_Materialdata ,符合条件的是taskid = <%=sysTaskID%>,把Materialdata_Reqdepartment的值赋给role,如果遇到ZZZ,替换为EFW而已!没有必要定义2个变量来做!
    update FORM_Materialdata 
    set role =replace(Materialdata_Reqdepartment,'ZZZ','EFW')
    where taskid = <%=sysTaskID%>
      

  6.   

    如果不想直接用replace 把ZZZ换成EFW那么你可以用substring一个一个的去取,你要替换几个,就设置几个变量!