您的位置:首页 > 数据库

SQL2005 CLR: UDT用户定义类型 part1

2004-08-05 15:08 375 查看
UDT: user defined type. 简单说就是用自己开发的类作为数据库字段类型。
在VS2005的SQL2005 Server项目中增加User-Defined Type, 自动生成Type1, 简单修改如下:

using System;
using System.Data.Sql;
using System.Data.SqlTypes;

[Serializable]
[SqlUserDefinedType(Format.SerializedDataWithMetadata, MaxByteSize = 512)]
public class Type2 : INullable

注意:
比如包含方法:ToString() / Parse(SqlString)
增加了方法Hello()。

项目编译部署完毕。在定义表结构的时候就可以在类型选项表中看到自定义类型dbo.Type2。
在VS2005 Server Explorer View里面,编辑这个表,可以象普通类型一样输入数据,输入无效数字时会以0代替。说明Parse()方法被调用.
执行查询:SELECT abc.Hello('x') FROM dbo.[User] 返回:
Hello: 3
Hello: -33
说明Hello方法被成功调用。

不足:
UDT重新编译部署时会报错,提示该类型已经被使用。在数据没有发生变化的情况下,这种检查似乎 有些多余。
好处:
对数据提供自定义转换处理。
可以用来包装杂七杂八的数据
包装复杂结构数据(树形、列表)
提供数据类型的辅助说明。

UDT的出现似乎否定了刚出生的XML字段类型。XML类型还有什么存在的理由呢?

参考: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sql_ovyukonnetprogfeatures.asp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: