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
在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
相关文章推荐
- SQL2005 CLR: UDT用户定义类型 part3
- SQL2005 CLR: UDT用户定义类型 part2
- Sql Server2008 Transact-SQL 新兵器学习总结之-用户定义表类型和日期,时间数据类型
- SQLCLR(四)用户定义类型UDT
- SQL 用户定义表类型,在存储过程里使用数据类型作參数
- SQL 用户定义表类型,在存储过程里使用数据类型作参数
- SQL 2008 用户定义表类型 注意传入列的顺序
- SQL 用户定义表类型,在存储过程里使用表类型,表参数作参数
- 为用户定义的数据类型绑定规则示例.sql
- SQL SERVRE 2005 CLR TVF错误:从用户定义的表值函数获取新行时出错:Data access is not allowed in this context.
- SQLCLR(四)用户定义类型UDT
- Inside Microsoft SQL Server 2005: T-SQL Programming (数据类型|第一章) 基于CLR的自定义数据类型
- SQLCLR(四)用户定义类型UDT
- 创建与删除用户定义数据类型示例.sql
- SQL Server 2005中的CLR总结和自定义类型(UDT)
- 修改已经被表引用的用户定义数据类型示例.sql
- 修改用户定义数据类型对已经编译的存储过程的影响的示例.sql
- SQLCLR(四)用户定义类型UDT
- 为用户定义的数据类型绑定默认值示例.sql
- SQL2005 用户自定义类型