text与image字段转换处理示例.sql

/*--示例说明:
    下面的代码演示了转换pubs数据库的pub_info表中的pr_info列(text类型)为image类型
    及将转换结果再转换为text的处理。
--*/
USE pubs

--创建一个临时表,用来转换 pub_info.pr_info 列值
CREATE TABLE #t(id int,a image,b text)
GO

--将 pub_info.pr_info 转换到 #t.a 列中
DECLARE @id int,@ps binary(16),@pd binary(16)
DECLARE tb CURSOR LOCAL
FOR
SELECT pub_id,TEXTPTR(pr_info) FROM pub_info
WHERE TEXTVALID('pub_info.pr_info',TEXTPTR(pr_info))=1
OPEN tb
FETCH tb INTO @id,@ps
WHILE @@FETCH_STATUS=0
BEGIN
    INSERT #t VALUES(@id,0x,'')
    SELECT @pd=TEXTPTR(a) FROM #t
    WHERE TEXTVALID('#t.a',TEXTPTR(a))=1
    IF @@ROWCOUNT>0
        UPDATETEXT #t.a @pd 0 NULL pub_info.pr_info @ps
    FETCH tb INTO @id,@ps
END
CLOSE tb
DEALLOCATE tb
GO

--将 #t.a 转换到 #t.b 列中
DECLARE @ps binary(16),@pd binary(16)
DECLARE tb CURSOR LOCAL
FOR
SELECT TEXTPTR(a),TEXTPTR(b) FROM #t
WHERE TEXTVALID('#t.a',TEXTPTR(a))=1
    AND TEXTVALID('#t.b',TEXTPTR(b))=1
OPEN tb
FETCH tb INTO @ps,@pd
WHILE @@FETCH_STATUS=0
BEGIN
    UPDATETEXT #t.b @pd 0 NULL #t.a @ps
    FETCH tb INTO @ps,@pd
END
CLOSE tb
DEALLOCATE tb
GO

--显示转换结果
SELECT * FROM #t
DROP TABLE #t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值