Sql 检查是否存在XML架构集合?

Sql 检查是否存在XML架构集合?,sql,sql-server-2005,exists,xml-schema-collection,Sql,Sql Server 2005,Exists,Xml Schema Collection,为SQLServer2005编写脚本。我正在向注册架构 CREATE XML SCHEMA COLLECTION [dbo].[MySchema] AS N'<xsd:schema ... >' 我在开发过程中经常运行这些东西,比如 DROP ... CREATE ... 但这在模式不存在的第一次运行时会出现问题。我想做一些类似的事情 IF OBJECT_ID ('MySchema') IS NOT NULL DROP ... CREATE ... 但是OBJECT\

为SQLServer2005编写脚本。我正在向注册架构

CREATE XML SCHEMA COLLECTION [dbo].[MySchema] AS N'<xsd:schema ... >'
我在开发过程中经常运行这些东西,比如

DROP ...
CREATE ... 
但这在模式不存在的第一次运行时会出现问题。我想做一些类似的事情

IF OBJECT_ID ('MySchema') IS NOT NULL
    DROP ...
CREATE ...
但是
OBJECT\u ID('MySchema')
只返回
NULL
。在SQLServer2005中是否有合适的方法来测试注册的Xml架构集合的存在

我的朋友们:)

检查:


为了100%准确,您还需要检查schema_id,因为XML schema集合对象包含(数据库)schema,并且您可能在不同的schema中有多个集合(dbo.MySchema、foo.MySchema、bar.MySchema等)
IF OBJECT_ID ('MySchema') IS NOT NULL
    DROP ...
CREATE ...
IF EXISTS (SELECT * FROM sys.xml_schema_collections WHERE name = 'MySchema')