托管 UDT 使您能够扩展 SQL Server 的类型系统
2007-11-11 04:48:09 来源:WEB开发网删除和更改 UDT 以及程序集
使用 DROP TYPE 语句可以很容易地删除 UDT,下例中将删除 Point UDT:
DROP TYPE Point
不过这里面有点蹊跷 — 如果 UDT 当前正被使用(如,在一个列的定义中),就好像 Point 示例中那样,该怎么办呢? 很明显,如果其他对象依赖于该类型,您将不能从数据库中删除这一类型。因此必须在删除类型本身之前,确保删除掉了所有使用该类型的对象。这对于删除程序集同样适用。在删除程序集之前,必须先删除所有的 UDT。基于最后这个示例,将按照下面的方法来删除 YukonCLR 程序集:
DROP TABLE PointsDROP TYPE POINTDROP TYPE AddressDROP ASSEMBLY YukonCLR
正如您所看见的,删除其中任意对象的语法是很简单的。当删除一个程序集时,便从当前的数据库中删除了基本代码,并且如果您想要将它添加回数据库中,必须拥有一个可用的编译版本。
由于受多种因素(例如,存储表示形式、排序和接口)的影响,ALTER TYPE 使用起来并不顺手。如果必须要更改,则一定要删除并重新创建这些对象。不过,ALTER ASSEMBLY 对于修补现有程序集代码中的错误很有效。
如果您对此有疑惑,这里提供对于在托管 ADO.NET 技术中和非托管客户端 API —(OLE DB、ODBC 以及 ADO)中 UDT 的深层支持。
小结
现在,您了解了如何在 Yukon 和 .NET 中实现用户定义类型以及如何在 Yukon 中使用这些实现。当然,UDT 还有一些其他功能我没有在这里探究,这些内容可能会在以后的 MSDN Magazine 中详解。
Peter W. DeBetta 是 Wintellect 公司的教员,同时他还是帮助客户使用 Visual Basic、ASP、C#、ASP.NET 以及 sql server(WINDOWS平台上强大的数据库平台) 开发企业级软件解决方案的顾问和开发人员。Peter 出版过一些合著书籍,他目前正致力于一本关于 sql server(WINDOWS平台上强大的数据库平台)“Yukon”的书,该书将由 Microsoft Press 出版。
更多精彩
赞助商链接