问题:
     
     更新是在两个表中进行的,Table_A和Table_B中各有一个Image类型的字段分别为Column_Image_A和Column_Image_B,存放的都是图片,我想用Table_A中的字段来更新Table_B中的字段,用下列方法不行:Update a set a.Column_Image_A=b.Column_Image_B
From Table_A a,Table_B b
where Table_A.ID=Table_B.ID
请问应该怎么实现?

解决方案 »

  1.   

    UPDATETEXT
    更新现有 text、ntext 或 image 字段。使用 UPDATETEXT 在适当的位置更改 text、ntext 或 image 列的一部分。使用 WRITETEXT 来更新和替换整个 text、ntext 或 image 字段。
      

  2.   

    marco08(天道酬勤)楼上的兄弟,给点代码否?期待。
      

  3.   

    因为你写错了
    Update a set a.Column_Image_A=b.Column_Image_B
    From Table_A a,Table_B b
    where Table_A.ID=Table_B.IDupdate 后面你只写了 a没写b
      

  4.   

    xihuafeiyu(123)
    -----------------------------
    哥们,你确信我写错了吗?
      

  5.   

    关键是两个表中的字段都是Image类型的,是不时非要写存储过程才能实现?唉,郁闷中
    有没有实际用过存储过程不知道该如何写,可能我的问题没有表达清楚,这里我再把问题描述一下,希望能有路过的高手帮下忙:问题:
        两张表:tblA和tblB中都各有一个Image类型的数据列,分别为ImgA和ImgB。其中tblA中的ImgA列有数据(图片),tblB中的ImgB列尚无数据,请问怎样将tblA中某一行的ImgA列的某一值拷贝到tblB中的相应的列中。                                                      求代码......-_-谢谢!!
      

  6.   


     Transact-SQL 参考  
    WRITETEXT
    允许对现有的 text、ntext 或 image 列进行无日志记录的交互式更新。该语句将彻底重写受其影响的列中的任何现有数据。WRITETEXT 语句不能用在视图中的 text、ntext 和 image 列上。语法
    WRITETEXT { table.column text_ptr }
        [ WITH LOG ] { data }参数
    table.column要更新的表和 text、ntext 或 image 列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。text_ptr指向 text、ntext 或 image 数据的指针的值。text_ptr 的数据类型必须为 binary(16)。若要创建文本指针,请对 text、ntext 或 image 列用非 NULL 数据执行 INSERT 或 UPDATE 语句。有关创建文本指针的更多信息,请参见 INSERT 或 UPDATE。 WITH LOG在 Microsoft? SQL Server? 2000 中忽略。日志记录由数据库的实际恢复模型决定。data要存储的实际 text、ntext 或 image 数据。data 可以是字面值,也可以是变量。对于 text、ntext 和 image 数据,可以用 WRITETEXT 交互插入的文本的最大长度大约是 120 KB。 注释
    请使用 WRITETEXT 来替换 text、ntext 和 image 数据,而用 UPDATETEXT 来修改 text、ntext 和 image 数据。UPDATETEXT 更灵活,因为它仅更改 text、ntext 或 image 列的某一部分,而不是整个列。如果数据库恢复模型简单或有大容量日志记录,则 WRITETEXT 是无日志记录的操作。这就意味着在将 text、ntext 或 image 数据写入数据库时,不会进行日志记录;因此,事务日志不会填满大量通常由这些数据类型组成的数据。为使 WRITETEXT 正常工作,列必须已经包含有效的文本指针。 如果该表没有行内文本,则在通过 INSERT 向 text 列中放入显式或隐式空值时,SQL Server 不初始化 text 列,从而节省了空间,而且不能获取这类空值的文本指针。若要将 text 列初始化为 NULL,请使用 UPDATE 语句。如果该表有行内文本,就没有必要为空值初始化文本列,而且您始终可以获取文本指针。与 WRITETEXT 相比,DB-Library dbwritetext 和 dbmoretext 函数以及 ODBC SQLPutData 函数速度较快且使用的动态内存较少。这些函数可以插入多达 2G 字节的 text、ntext 或 image 数据。在 SQL Server 2000 中,可能存在指向 text、ntext 或 image 数据的行内文本指针,但这些指针无效。有关 text in row 选项的信息,请参见 sp_tableoption。有关使文本指针无效的信息,请参见 sp_invalidate_textptr。权限
    WRITETEXT 的权限默认地授予那些对指定的表拥有 SELECT 权限的用户。这些权限可在传递 SELECT 权限时传递。示例
    下例将文本指针放到局部变量 @ptrval 中,然后 WRITETEXT 将新的文本字符串放到 @ptrval 所指向的行中。USE pubs
    GO
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
    GO
    DECLARE @ptrval binary(16)
    SELECT @ptrval = TEXTPTR(pr_info) 
    FROM pub_info pr, publishers p
    WHERE p.pub_id = pr.pub_id 
       AND p.pub_name = 'New Moon Books'
    WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!'
    GO
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
    GO
    请参见数据类型DECLARE @local_variableDELETESELECTSETUPDATETEXT?1988-2000 Microsoft Corporation。保留所有权利。