首页 > 解决方案 > 我可以循环遍历插入语句中每一行的值的表吗?

问题描述

我有一个包含 260 行信息的表(我取自 NAMES 表中的 XML 列),我想获取该表每一行的名字并插入到一个新表 USR_BBUSXMLTNS。

我的插入语句:

begin try
    -- handle inserting the data
    insert into dbo.USR_BBUSXMLTNS
        (ID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,FIRSTNAME)
    values
        (@ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE,
        (SELECT  CAST(REPLACE(REPLACE(CONVERT(nvarchar(max), Data), 
        '<?xml version="1.0" encoding="utf-8"?>', ''), 
        ' xmlns="urn:books.RET.XDATA"', '') AS xml).value('(//Donor/FirstName/text()) [1]', 
        'nvarchar(max)') FROM Names) )
    
end try

我希望 insert 语句遍历 Names 表并获取每行的名称值并将其添加到 insert ,理想情况下,当它完成时,我将在 USR_BBUSXMLTNS 表中拥有 260 个名称。

我搜索了该站点并尝试了不同的解决方案,但不确定它们是否适合我的需要。

当我运行它时,我得到:子查询返回超过 1 个值。当子查询跟随 = 时,这是不允许的,因为有多个结果 - 我可以做一个循环吗?

任何建议都会很棒。

大卫。

标签: mysqlsql

解决方案


推荐阅读