2009-11-13 136 views
4

SQL Server 2005年我註冊一個模式編寫腳本與檢查是否存在XML模式集合?

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

現在,我做出改變,我想放棄它,說一起

DROP XML SCHEMA COLLECTION [dbo].[MySchema] 

我運行一個電話這個東西相當頻繁,因爲我正在開發,就像

DROP ... 
CREATE ... 

但是這在第一次運行時出現了架構不存在的問題。我願做同樣的事情到

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

OBJECT_ID ('MySchema')只是返回NULL。有沒有一種合適的方法來測試Sql Server 2005中是否存在已註冊的Xml Schema Collection?

muchos格拉西亞斯誤吾友:)

回答

13

檢查sys.xml_schema_collections

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

D'哦!感謝您的鏈接:) – 2009-11-13 21:11:05

+0

爲了100%準確,您還需要檢查schema_id,因爲XML模式集合對象包含(數據庫)模式,並且您可能在不同模式中有多個集合(dbo.MySchema,foo.MySchema, bar.MySchema等) – 2009-11-13 21:13:27