XML ファイルから SQL テーブルにデータをインポートする TSQL スクリプトをローカルでテストしました。このデータを SQL Azure DB に取得できるように、XML ファイルをどこに配置すればよいかわからないため、「ああ、がらくた」の瞬間がありました。グーグルで調べましたが、これを行う方法が見つかりませんでした。
この SQL を Azure DB に対して実行し、XML ファイルの内容を読み込む方法はありますか?
注: 以下の行に注意してください。
BULK 'c:\Temp\abook.20130407.1912.xml',
それは私のローカルPCにあります。このデータを 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