2009-11-13 66 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