Article View: cn.bbs.comp.database
Article #832[MSSQL] CLR UDT
From: Galaxy��VOLUNTEERS��Database
Date: Wed, 19 Nov 2008 06:29
Date: Wed, 19 Nov 2008 06:29
95 lines
5505 bytes
5505 bytes
��Ȼ"When Should I Use SQL-Server CLR User Definied Types
(UDT)?"<http://weblogs.asp.net/alex_papadimoulis/archive/2005/10/20/428014.as
px>��ƪ�������ᵽ�����µĹ۵㣺
Fortunately, with SQL Server's CLR UDTs, knowing when to use them is pretty
clear:
Never.
���ò�˵����������൱������ͨ��������ϸ�����ɿ����Լ����ģ�Ȼ����������
�������Լ����жϣ����õ��ճ��ñ���ԥ������ͻ���case����ص����⣬�����о���
��Ҫ�о��ġ�����
�����case��������������ȸ㶮��������Ǹ�ʲô�ġ�
��ǰ�ù�һ��UDT����������T-SQLŪ�ģ�SSIS����������ݿ�ʱ�����ģ���������Ҳ��
�Ƕ��������Ϊmonthʵ�ʻ���int��type��CLR UDT����CLR��ʽ��UDT������ΪʲôҪUD
T��������Ȼ��SQL Server�Դ�������������ˡ�UDT������Ԫ�أ�element����
�ж�����Ϊ��behavior��������Ȼ���ܶ�����ٻ�Ӱ��Щ���ܡ���Ҫ�����������棻
1. Date, time, currency, and extended numeric types
2. Geospatial applications����������������spatial���͵�case����Ϊ��UDT���Բ�
������linq����Ȼ�и��ǹٷ���workaround��
3. Encoded or encrypted data
һ��ʹ��CLR UDT�IJ������£�
1. ��������UDT��assembly
2. ע��assembly
3. ��SQL Server���UDT
4. ����ʹ��UDT�ı?�����Ͳ���
msdn���и�������룺ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_2devguide/h
tml/0feb8b08-4062-467b-8433-e88e4e302738.htm�����¾��Ǵ���һ�����к�������
�������͡�
һ����˵�Ƽ���UDT����Ϊһ���ṹ�壬����Ҳ���Դ���Ϊһ���ࡣ
UDT�����������µ�Ҫ��
1. UDT����ָ��Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute���Ƽ�ʹ
��System.SerializableAttribute
����
[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native,
IsByteOrdered=true, ValidationMethodName = "ValidatePoint")]
���ö��л�������UserDefined Serialization��Serialization Attributes��
2. ���ṹ���б����� System.Data.SqlTypes.INullable �ӿڣ���ΪSQL ServerĬ��
��null-aware�ģ�
����
private bool is_Null;
public bool IsNull
{
get
{
return (is_Null);
}
}
public static Point Null
{
get
{
Point pt = new Point();
pt.is_Null = true;
return pt;
}
}
.....
�����кܶ�requirements������д�ˡ�����
һ����˵Microsoft.SqlServer.Server ��System.Data.SqlTypes ������namespaceҲ��
ͨ��Ҫ�ӵġ�
����ϸ����ô��д���Բο���Coding User-Defined Types ��<ms-help://MS.SQLCC.v10
/MS.SQLSVR.v10.en/s10de_2devguide/html/1e5b43b3-4971-45ee-a591-3f535e2ac722.h
tm>
ע��assembly������UIҲ������T-SQL������UDT��CREATE TYPE
ע��UDT���ܿ�Database������ÿ����ݿⶼҪ����assembly��
����ʹ��UDT����ر��ʹ����ͨ����ûɶ���
CREATE TABLE dbo.Points
(ID int IDENTITY(1,1) PRIMARY KEY, PointValue Point)
����ֵ��Ҫconvert��castһ�£�
INSERT INTO dbo.Points (PointValue) VALUES (CONVERT(Point, '3,4'));
��ѯ���Ҫ��ʾ�Ļ���Ҫת��һ�£�
SELECT ID, PointValue.ToString() AS PointValue
FROM dbo.Points;
��ADO.NET�з���UDT�������������ַ�����
1. ��System.Data.SqlClient.SqlDataReader ��Ϊobject
2. ��SqlDataReader��Ϊraw bytes
3. ��System.Data.SqlClient.SqlParameter ������
Update������DataAdapters
�ðɣ�case������������������report�ˡ�������ë���ַ��ˡ�������������������
--
Welcome to Database Board
��ӭ������ݿ��
http://bbs.sjtu.edu.cn/bbsdoc?board=database
[m[1;33m�� ��Դ:����ˮ˼Դ bbs.sjtu.edu.cn��[FROM: 207.46.55.30][m
Technical Details
Message-ID:
<4d7P6A$b8g@bbs.sjtu.edu.cn>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.neu.edu.cn!news.shec6.edu.cn!SJTUShow Full Headers
Complete Article Headers
X-Google-Thread: 101948,700dfd2c22b7fd2f,start X-Google-Attributes: gid101948,domainid0,public,usenet X-Google-Language: Chinese,GB Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.neu.edu.cn!news.shec6.edu.cn!SJTU From: Dem.bbs@bbs.sjtu.edu.cn (Galaxy��VOLUNTEERS��Database) Newsgroups: cn.bbs.comp.database Subject: [MSSQL] CLR UDT Date: 19 Nov 2008 06:29:09 GMT Organization: ��ˮ˼Դ Message-ID: <4d7P6A$b8g@bbs.sjtu.edu.cn> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Filename: database/M.1227076138.A Lines: 94