`
wyf
  • 浏览: 424951 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

SQL Server 2005中创建CLR存储过程

    博客分类:
  • SQL
阅读更多
 

 一、打开vs2005 建立数据库项目。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions;


public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void P_GetAllPY(SqlString hzString, out SqlString pyString)
    {
        // 匹配中文字符   
        Regex regex = new Regex("^[\u4e00-\u9fa5]$");
        byte[] array = new byte[2];
        int chrAsc = 0;
        pyString = "";
        int i1 = 0;
        int i2 = 0;
        SqlChars noWChar = (SqlChars)hzString;
        for (int j = 0; j < noWChar.Length; j++)
        {
            // 中文字符   
            if (regex.IsMatch(noWChar[j].ToString()))
            {
                array = System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());
                i1 = (short)(array[0]);
                i2 = (short)(array[1]);
                chrAsc = i1 * 256 + i2 - 65536;
                if (chrAsc > 0 && chrAsc < 160)
                {
                    pyString += noWChar[j].ToString();
                }
                else
                {
                    // 修正部分文字   
                    if (chrAsc == -9254)  // 修正“圳”字   
                        pyString += "Zhen";
                    else
                    {
                        for (int i = (pyValue.Length - 1); i >= 0; i--)
                        {
                            if (pyValue[i] <= chrAsc)
                            {
                                pyString += pyName[i];
                                break;
                            }
                        }
                    }
                }
            }
            // 非中文字符   
            else
            {
                pyString += noWChar[j].ToString();
            }
        }
    }
    #region 拼音编码
    private readonly static int[] pyValue = new int[]   
{   
-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,   
-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,   
-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515,   
-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249,   
-19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,   
-19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,   
-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,   
-18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183, -18181,-18012,   
-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,   
-17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482,   
-17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733,   
-16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,   
-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,   
-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944,   
-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659,   
-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394,   
-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150,   
-15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,   
-14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,   
-14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,   
-14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,   
-14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,   
-14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907,   
-13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601,   
-13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343,   
-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076,   
-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831,   
-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300,   
-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798,   
-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067,   
-11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,   
-10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,   
-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254   
};
    private readonly static string[] pyName = new string[]   
{   
"A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben",   
"Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can",   
"Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng",   
"Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong",   
"Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De",   
"Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui",   
"Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo",   
"Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong",   
"Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han",   
"Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan",   
"Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing",   
"Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke",   
"Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo",   
"La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang",   
"Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun",   
"Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian",   
"Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang",   
"Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning",   
"Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan",   
"Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po",   
"Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu",   
"Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou",   
"Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen",   
"Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu",   
"Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan",   
"Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian",   
"Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai",   
"Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao",   
"Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang",   
"Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun",   
"Za", "Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan",   
"Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan",   
"Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo"  
};
    #endregion 拼音编码
};

 

以上获得 汉字的全拼

二、部署(配置数据库连接)

或者在查询分析器中执行注册语句

 

--注册程序集
CREATE ASSEMBLY Proc_GetAllPY from 'E:\程序集存储过程\Proc_GetAllPY\Proc_GetAllPY\bin\Debug\Proc_GetAllPY.dll' WITH PERMISSION_SET = SAFE
GO
--创建存储过程
CREATE PROCEDURE Proc_GetAllPY(@hz nvarchar(1000),@py nvarchar(1000) out)
AS 
EXTERNAL NAME Proc_GetAllPY.StoredProcedures.P_GetAllPY
GO

--开启clr支持
EXEC sp_configure 'clr enabled', 1 
GO 
RECONFIGURE 
GO 

--执行存储过程
declare @str nvarchar(1000)
exec dbo.Proc_GetAllPY '王燕飞' ,@str out
select @str
--关闭clr支持
EXEC sp_configure 'clr enabled', 0 
GO 
RECONFIGURE 
GO

 

分享到:
评论

相关推荐

    在SQL Server 2005中创建CLR存储过程的详细介绍

    本篇文章是对在SQL Server 2005中创建CLR存储过程进行了详细的分析介绍,需要的朋友参考下

    Professional SQL Server 2005 CLR Programming

    详细介绍SQL/CLR,让你用c#更轻松的来写存储过程,触发器等等

    Microsoft SQL Server 2005技术内幕: T-SQ程序设计.pdf

    该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-SQL编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...

    Microsoft SQL Server 2005开发指南

    书中的一些示例和提示详细介绍了如何将SQL Server 2005作为一个多层的数据库平台与Visual Studio 2005一起使用,如何使用SQL CMD创建自定义的管理脚本,以及如何使用SQL Profiler提高性能。. 本书主要内容: ·使用 ...

    SQL Server CLR 存储过程实现数据的ZIP压缩和解压

    SQL Server CLR 存储过程实现数据的ZIP压缩和解压,可对表和视图里的数据进行压缩, 完全实现Zip的压缩和打包算法,不依赖磁盘上的文件。

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    SQL 2005 + CLR 压缩/解压 文件夹

    使用.Net Framework System.IO.Compression命名空间下的类来压缩/解压文件夹,并创建CLR扩展的存储过程,在SQL SERVER 2005中使用.

    SQL Server 2008完全学习手册视频教程.zip

    目录 第1章 SQL Server 2008入门知识 SQL 2008完全学习手册 视频教程 第2章 使用SQL Server 2008管理工具 SQL 2008...第19章 使用CLR访问SQL Server 2008 第20章 使用SMO访问SQL Server 2008 第21章 SQL Server其他操作

    用CLR写存储过程快速入门

    用CLR写存储过程快速入门,CLR是C#与SQL Server的一个重要桥梁,非常好用

    SQL2005入门到精通(10)

    第10章 存储过程 209 10.1 存储过程概述 209 10.2 设计存储过程 209 10.3 创建存储过程 210 10.3.1 在SQL Server Management Studio中建立存储过程 210 10.3.2 用CREATE PROCEDURE语句创建存储过程 ...

    在SQLServer 2005中编写存储过程

    然而,在SQL Server 2005中,我们可以用.NET家族的语言——主要是VB.NET和C#来编写存储过程(以及方法、触发器和其它组件)。让我们来熟悉一下关于编写存储过程新方法的5个常见问题。它们是非常值得我们探讨的。 1、...

    在SQL Server中使用CLR调用.NET方法实现思路

    按照微软所述,通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型。 这使得开发人员可以用任何CLR语言(如C#、VB.NET或C++等)来写存储过程、触发器和用户...

    SQL Server 数据库技术---基础篇、数据库安全、SQL开发、数据库性能优化

    复制)、SQL开发(数据库设计、SQL Server与CLR集成、在SQL Server中使用 XML、使用ADO.NET、使用SMO编程管理数据库对象、高级T-SQL、Service Broker 异步应用程序平台、空间数据类型跨实例链接、数据库管理自动...

    SQL Server 2005(入门到精通教程+常考笔试面试试题)

    1、sqlserver2005概述 2、T-SQL查询 3、事务与锁 4、索引 5、约束、同义词、缺省值、自定义数据类型、规则 6、视图、存储过程、函数、游标与触发器 7、数据库安全 8、备份与恢复 9、分区表 10、数据库优化 11、开发...

    用.NET为SQLServer编写存储过程和函数

    很早就知道可以用.NET为SQL Server2005及以上版本...首先要说明的是要在SQLServer中启用CLR必须是在SQLServer2005及以上版本,其次在默认情况下是没有启用CLR的,必须要显示设置为启用。比如我们要在ArticleCollectorD

    SQL_Server_2005基础教程

    深入研究了Microsoft SQL Server 2005系统的基本结构和功能特点、安装规划和配置技术、数据库管理、Transact-SQL语言、表、操纵数据技术、索引技术、数据完整性技术、视图技术、存储过程技术、触发器技术、备份和...

    将SQL Server CLR存储过程安装为十六进制字符串

    将.NET程序集编码为十六进制字符串以安装在SQL Server中。

    ASP.NET2.0+SQLServer2005构建多层应用

    SQLServer2005使用aprilctp版本)来构建一个简单的多层应用的例子,并且说明其中在.NET2.0和SQLServer2005中的一些新的特性,比如objectdatasource,masterpages,clr存储过程,tableadapter向导等。 多

Global site tag (gtag.js) - Google Analytics