假设我有以下情况(用于演示)。简单表内容被转换为 XML 值,并通过 Service Broker 发送到另一个 SQL 服务器,其中的结果SELECT
将以非 XML 形式存储(即通常的简单数据库表)。咱们试试吧:
CREATE TABLE tab (a int, b int, c int);
GO
INSERT INTO tab (a, b, c) VALUES (1, 11, 111);
INSERT INTO tab (a, b, c) VALUES (2, 22, 222);
INSERT INTO tab (a, b, c) VALUES (3, 33, 333);
INSERT INTO tab (a, b, c) VALUES (4, 44, 444);
GO
SELECT * FROM tab FOR XML RAW, TYPE;
GO
将值捕获到消息时,它看起来像:
<row a="1" b="11" c="111" />
<row a="2" b="22" c="222" />
<row a="3" b="33" c="333" />
<row a="4" b="44" c="444" />
即单个多行字符串。比如说,我在目标机器上创建了完全相同的表结构:
CREATE TABLE tab_destination (a int, b int, c int);
从 中提取行的最佳方法是什么@msg
,以及如何将它们放入目标表?
谢谢,彼得