2009-11-13 3 views
4

는 SQL 서버 내가 변경, 나는 그것을 떨어 싶습니다 지금XML 스키마 컬렉션의 존재 여부를 확인 하시겠습니까?

CREATE XML SCHEMA COLLECTION [dbo].[MySchema] AS N'<xsd:schema ... >' 

와 스키마를 등록하고 2005 년을위한 스크립트를 작성,

DROP XML SCHEMA COLLECTION [dbo].[MySchema] 

내가 이것을 실행에 대한 호출을 말한다 물건 상당히 자주 나는

DROP ... 
CREATE ... 

처럼 개발하고 있지만,이 스키마가 존재하지 않는 첫 번째 실행에 문제를 제시한다. 나는

IF OBJECT_ID ('MySchema') IS NOT NULL 
    DROP ... 
CREATE ... 

과 비슷한 일을하고 싶지만 그냥 NULLOBJECT_ID ('MySchema') 반환합니다. 2005는 SQL 서버에 등록 된 XML 스키마 컬렉션의 존재 여부를 테스트하는 적절한 방법이 있나요?

muchos 그라시아 잘못 아미고 스 :

답변

13

확인 sys.xml_schema_collections : 디 오

IF EXISTS (SELECT * FROM sys.xml_schema_collections WHERE name = 'MySchema') 
+0

! 링크를 주셔서 감사합니다 :) –

+0

XML 스키마 컬렉션 객체는 (데이터베이스) 스키마가 포함되어 있고 다른 스키마 (dbo.MySchema, foo.MySchema 등)에 여러 컬렉션이있을 수 있으므로 100 % 정확하려면 schema_id도 확인해야합니다. bar.MySchema 등) –