批量处理sql 数据存入xml类型列

摘要:
个人记录要求:当表T1ItemCode和表T2ItemName中的数据相等时,表T2对应的ID和ItemName列中的数据将分别存储在表T1CAOZOO字段的ID元素和text元素的文本中。

个人记录

需求:当表T1 ItemCode和表T2 ItemName的数据相等时,将表T2所对应的ID和ItemName列的数据分别存入表T1 CAOZUO字段的id元素和text元素的文本中。

批量处理sql 数据存入xml类型列第1张

下面用存储过程循环来实现批量处理sql 数据存入xml类型数据:

CREATE PROCEDURE [dbo].[PRE_XMCus]

AS
BEGIN
    --创建临时表
    CREATE TABLE #TEMPS (Dspid uniqueidentifier NULL,ItemCode VARCHAR(100) NULL,Id uniqueidentifier NULL,ItemName NVARCHAR(100) NULL,ROWID INT NULL)
    DECLARE @BatchID uniqueidentifier
    SET @BatchID =NEWID()
    
    INSERT INTO #TEMPS
    (Dspid,ItemCode,Id,ItemName,ROWID)    
    SELECT  @BatchID AS Dspid,T1.ItemCode,T2.Id,T2.ItemName,ROW_NUMBER() OVER(ORDER BY T1.ItemCode)AS ROWID    
    FROM TECUL_XMCus T1
    INNER JOIN Tecul_SysUsers T2 ON T1.ItemCode=T2.ItemName AND T2.IsDelete=0
    WHERE T1.IsDelete=0 AND T1.CAOZUO IS NULL
    --先将操作用户字段为NULL的赋值
    UPDATE T2
    SET T2.CAOZUO='<CaoZuo><data><item><id>64b2e004-1038-415b-8522-7c1a8c974572</id><text>020001</text></item></data></CaoZuo>'
    FROM TECUL_XMCus T2
    INNER JOIN Tecul_SysUsers T3 ON T2.ItemCode=T3.ItemName AND T3.IsDelete=0
    WHERE T2.IsDelete=0 AND T2.CAOZUO IS NULL
    --获取最大行数
    DECLARE @Maxrow INT=(SELECT COUNT(*) FROM #TEMPS)
    --开始循环
    WHILE(@Maxrow>0)
    BEGIN
    BEGIN TRY
    BEGIN TRAN
        IF EXISTS(SELECT 1 FROM #TEMPS WHERE Dspid=@BatchID AND ROWID=@Maxrow)
        BEGIN
        DECLARE @ItemCode VARCHAR(20)
        SELECT @ItemCode=ItemCode FROM #TEMPS WHERE Dspid=@BatchID AND ROWID=@Maxrow
        IF EXISTS(SELECT 1 FROM #TEMPS WHERE Dspid=@BatchID AND ROWID=@Maxrow)
            BEGIN
            DECLARE @aid uniqueidentifier,@bid NVARCHAR(100)
            SET @aid=(SELECT Id FROM #TEMPS WHERE ItemCode=@ItemCode AND Dspid=@BatchID AND ROWID=@Maxrow)
            set @bid=(SELECT ItemName FROM #TEMPS WHERE ItemCode=@ItemCode AND Dspid=@BatchID AND ROWID=@Maxrow)
            --更新id元素文本
            UPDATE T2 
            SET CAOZUO.modify('replace value of (/CaoZuo/data/item/id/text())[1] with sql:variable("@aid")')
            FROM #TEMPS T1
            JOIN TECUL_XMCus T2 ON T1.ItemCode=T2.ItemCode AND T2.IsDelete=0
            WHERE T2.ItemCode=@ItemCode AND Dspid=@BatchID AND ROWID=@Maxrow
            --更新text元素文本    
            UPDATE T2 
            SET CAOZUO.modify('replace value of (/CaoZuo/data/item/text/text())[1] with sql:variable("@bid")')
            FROM #TEMPS T1
            JOIN TECUL_XMCus T2 ON T1.ItemCode=T2.ItemCode AND T2.IsDelete=0
            WHERE T2.ItemCode=@ItemCode AND Dspid=@BatchID AND ROWID=@Maxrow
        END
        END
    COMMIT TRAN
    END TRY
    BEGIN CATCH
    DECLARE @ERRORMES NVARCHAR(300)
    SET @ERRORMES=ERROR_MESSAGE()
    ROLLBACK TRAN
    END CATCH
    SET @Maxrow=@Maxrow-1
    END

-- SELECT * FROM  #TEMPS
-- DROP TABLE #TEMPS
END

 

免责声明:文章转载自《批量处理sql 数据存入xml类型列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PHP实现定时任务的几种方法2017 jq 总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

JS事件 文本框内容改变事件(onchange)通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

以下代码显示,当用户更改文本框中的文本时,会弹出一个对话框“您更改了文本内容!”。运行结果:该任务补充了右侧编辑器的第13行。当文本框的内容发生更改时,将调用message()函数,并弹出对话框“您更改了文本内容!”。DOCTYPEHTML˃文本框内容更改事件functionmessage(){alert(“您更改了文本内容!”);}个人简介:请编写您的个人...

ftp命令

ftp命令是标准文件传输协议的用户界面。Ftp是在TCP/IP网络上的计算机之间传输文件的一种简单有效的方法。它允许用户传输ASCII文件和二进制文件。用户可以在目录中上下移动,列出目录内容,将文件从远程计算机复制到本地计算机,并将文件从本地计算机传输到远程系统。它用于确定用户可以对要传输的文件进行何种访问。用户显然需要知道进行ftp会话的计算机的名称或IP...

微信扫码网页登录,redirect_uri参数错误解决方法

对于微信开放平台[管理中心/应用程序详细信息]中设置的[开发信息][授权回调域],只需填写域名,无需https://,也无需特定页面。您不需要填写完整的请求路径,如图所示:https://open.weixin.qq.com/connect/qrconnect?appid=您的APPID&direct_Uri=回调和响应的特定地址_type=code...

将txt、csv等文本文件导入Hive

将txt、csv等文本文件导入Hive目录将txt、csv等文本文件导入Hive00.数据在虚拟机外01.启动hadoop、hdfs02.将文件放置在hdfs目录下03.登录hive并进入指定数据库04.根据文件创建表05.执行导入语句00.数据在虚拟机外如果数据在虚拟机内,请跳过此步,直接执行接下来的操作。...

如何在linux下安装idea

[通过正式安装包安装]http://www.jetbrains.com/在官方网站上下载相应版本。终极旗舰社区版本,将其解压缩到本地对应目录,然后执行/idea.sh命令。安装后,可以在启动程序中找到创意图标。...

Kafka监控工具——Kafka-Eagle

Kafka监控工具官网https://www.kafka-eagle.org/是什么KafkaEagle是一款用于监控和管理ApacheKafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。而且,在使用消费者API时,尽量#客户端KafkaAPI版本和Kafka服务端的版本保持#一致性。...