2013-04-08 2 views
2

XML 파일의 데이터를 SQL 테이블로 가져 오는 TSQL 스크립트를 로컬에서 테스트했습니다. 방금 SQL Azure DB에이 데이터를 가져올 수 있도록 XML 파일을 어디에 넣어야할지 모르겠다. 나는 약간의 인터넷 검색을했으나 이것을 수행하는 방법을 찾지 못했습니다.SQL Azure에 XML 파일로드

내 Azure DB에 대해이 SQL을 실행하고 XML 파일의 내용을로드 할 수있는 방법이 있습니까?

참고 :

BULK 'C : \ 임시 \의 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 

답변

1

겉으로보기에는 아픈 방법을 살펴본 결과 상당히 빠르고 깨끗한 접근 방식을 찾았습니다.

로컬 데이터베이스에 XML 파일을 가져올 수 있었기 때문에 SQL Azure 인스턴스에서 실행할 수있는 스크립트를 생성했습니다.

지역 DB :

  1. 가져 오기
  2. 마우스 오른쪽 단추로 클릭 DB에 위의 질문에 표시된 것처럼 XML 파일 -> 작업은 -> 테이블 I를 지정하여 마법사를 통해 스크립트를
  3. 일을 생성 스크립트를 사용 하시겠습니까?
  4. 스크립트 옵션 설정 탭에서 고급 단추를 클릭하고 아래와 같이 옵션을 설정하십시오.
  5. SQL 애저에 연결 마법사 SSMS에서

, 마침 :
1. 출력/위의 단계에서 스크립트는이 link가 사용하는 몇 가지 설정을 보여 주었다 데이터

을 가져올를 스크립트를 생성하는 고급 옵션.

고급 스크립팅 옵션에서


"SQL 애저 데이터베이스"
세트 "자료 유형에 UDDTs 변환"옵션으로 "참"
을 같은 옵션 "데이터베이스 엔진 유형에 대한 스크립트"세트의 설정 "유형 데이터를 스크립트로 "옵션을 선택하십시오.
확인을 클릭하십시오.

+0

안녕하세요. Bob. 나는 약간의 시간이 지났음을 알고 있지만 "위의 질문"이 어디에 있는지 말해 줄 수 있습니까? XML 파일을 가져 오는 방법은 무엇입니까? – Vic

+0

이 페이지에 질문이 있습니다. –