将XML文件加载到SQL Azure中

3
我刚刚在本地测试了一个TSQL脚本,该脚本将数据从XML文件导入到我的SQL表中。但是我突然有点懵逼,因为我不知道在哪里放置我的XML文件,以便将数据导入我的SQL Azure数据库。我已经搜索了一些谷歌资料,但找不到如何操作的方法。
是否有一种方法可以运行此SQL并将其加载到我的Azure数据库中?
注意:请注意下面这行代码:
BULK 'c:\Temp\abook.20130407.1912.xml',
它在我的本地电脑上。我不确定在哪里放置此文件以便将数据传输到Azure。
SET IDENTITY_INSERT Contact ON

INSERT INTO Contact (ContactId, EntityId, Type, Value, Notes)
SELECT X.row.query('field[@name="id"]').value('.', 'INT'),
       X.row.query('field[@name="recordid"]').value('.', 'INT'),
       X.row.query('field[@name="type"]').value('.', 'VARCHAR(25)'),
       X.row.query('field[@name="contact"]').value('.', 'VARCHAR(100)'),
       X.row.query('field[@name="notes"]').value('.', 'NVARCHAR(255)')
FROM ( 
SELECT CAST(x AS XML)
FROM OPENROWSET(
     BULK 'c:\Temp\abook.20130407.1912.xml',
     SINGLE_BLOB) AS T(x)
     ) AS T(x)
CROSS APPLY x.nodes('/mysqldump/database/table_data[@name="contact"]/row') AS X(row);

SET IDENTITY_INSERT Contact OFF
1个回答

1

在研究了一些看起来很痛苦的方法之后,我找到了一个相当快速和干净的方法。

由于我能够将XML文件导入本地数据库,所以我只需生成脚本,然后在我的SQL Azure实例上执行即可。

本地数据库:

  1. 像上面问题中展示的那样导入XML文件
  2. 右键单击数据库 -> 任务 -> 生成脚本
  3. 按照向导的步骤进行操作,指定要脚本化的表
  4. 在“设置脚本选项”选项卡上,单击“高级”按钮,并按下面所示设置选项。
  5. 完成向导

在连接到SQL Azure的SSMS中:
1. 使用上述步骤的输出/脚本导入数据

这个链接显示了生成脚本的高级选项中使用的一些设置。

在高级脚本选项中,将“数据库引擎类型的脚本”选项设置为“SQL Azure Database”,将“将UDDT转换为基本类型”选项设置为“True”,并将“要脚本化的数据类型”选项设置为“仅数据”。点击确定。

嗨鲍勃。我知道一段时间过去了,但你能告诉我"上面的问题"在哪里吗?关于如何导入XML文件? - undefined
1
这是这个页面上的问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接