MS SQL Server 2000 中文模糊搜寻存储过程及函数

server|存储过程|函数|中文

这些存储过程/函数可以在 MS SQL Server 2000 里使用,包含两组存储过程, 这两组函数的功能相同, 只是适用的汉字内码范围不同。
这些存储过程及函数支持 GBK (大陆简体中文及繁体中文) 和 BIG5 内码 (台湾及香港等的繁体中文)
这些函数将直接用在 SQL 语句里, 使用非常方便。
可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用。
这些存储过程全部用 C++ Builder 编写, 并且汉字读音全部由 C++ 处理, 效率比较高, 比汉字读音储存在数据库里用 SQL 查询快很多

【授权方式】
1.本存储过程为免费软件(Freeware), 可以免费使用.
2.如果你(无论你代表个人还是实体)要发布软件或者作为商业用途, 这个软件(存储过程/函数)必须作为你的软件的功能的一部分,
不能单独发布和出售本软件(存储过程), 也不能以这个软件制作一个类似功能的软件(存储过程或函数等)来发布.
3.这个授权仅授权给你(无论你代表个人还是实体), 你不能再次授权给别人进行授权和发布.

【使用方法】
具体参数说明参考安装方法里面的 SQL 语句

得到名字的读音编码 (GBK)
select name,dbo.fn_cncode(name,8) from table1搜寻所有名字含有与'小宝'读音相近的记录, 不区分 Zh Ch Sh 与 z c s (GBK)
select * from table1 where dbo.fn_cnlike(name,'小宝',9)<>0
得到名字的读音编码 (BIG5)
select name,dbo.fn_cncode(name,0) from table1
搜寻所有名字含有与'小寶'读音相近的记录, 不区分 ㄓㄔㄕ 与 ㄗㄘㄙ (BIG5)
select * from table1 where dbo.fn_cnlike(name,'小寶',1)<>0
【安装方法】
1.把动态链接库 VictorMsUa.dll 复制到 MS SQL Server 的 Binn 文件夹。
默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL\Binn
2.通过执行 SQL 语句注册存储过程,这些存储过程必须在 Master 数据库里面注册。
打开 Master 数据库,然后执行下面 SQL 语句
EXEC sp_addextendedproc 'xp_getspcode' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_gbksndlike' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_getchinesecode', 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_chinesesndlike', 'VictorMsUa.dll'
3.在用户数据库里面创建对应的函数
打开用户数据库,然后执行下面的 SQL 语句
-- GBK 编码, 支持繁体中文和简体中文
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
CREATE FUNCTION fn_getspcode (@str1 VARCHAR(8000))
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getspcode @str1, @sp OUTPUT
  RETURN @sp
END
go
-- GBK 编码, 支持繁体中文和简体中文
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
CREATE FUNCTION fn_gbksndlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_gbksndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go
-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
-- options: 0: BIG5 编码, 8: GBK 编码
CREATE FUNCTION fn_cncode (@str1 VARCHAR(8000), @options SMALLINT)
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getchinesecode @str1, @options, @sp OUTPUT
  RETURN @sp
END
go
-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: BIG5: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
-- GBK : 8: 一般选项, 9:不区分Zh Ch Sh 与 z c s , 10:任意順序, 11:包括1和2 (GBK)
CREATE FUNCTION fn_cnlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_chinesesndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go

下载 MS SQL Server 2000 中文模糊搜寻存储过程

时间: 2024-10-31 10:19:12

MS SQL Server 2000 中文模糊搜寻存储过程及函数的相关文章

MS SQL Server2014链接MS SQL Server 2000

原文:MS SQL Server2014链接MS SQL Server 2000 开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法:<SQL Server创建链接服务器的一些存储过

重装MS SQL Server 2000前必须彻底删除原安装文件的方法_MsSql

重装MS SQL Server 2000一般需要彻底删除原安装文件,以前总是无法重新安装,默认被占了,现在网上看到了特用如下方法对付安装挂起问题:  1.在开始->运行中输入regedit  2.到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置  3.选择文件->导出,保存(安全起见)  4.在右边窗口右击PendingFileRenameOperations,选择删除,然后确认

ADO连接MS SQL SERVER 2000程序

ado连接ms sql server 2000程序 function adothread(param: pointer): integer; stdcall; var   con, cmd : variant; begin   coinitialize(nil);   con := getnewconnection(...);   if varisempty(con) then   begin   //未连接上,退出   exit;   end eles    cmd := getnewcomm

重装MS SQL Server 2000前必须彻底删除原安装文件的方法

重装MS SQL Server 2000一般需要彻底删除原安装文件,以前总是无法重新安装,默认被占了,现在网上看到了特 用如下方法对付安装挂起问题:  1.在开始->运行中输入regedit  2.到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置  3.选择文件->导出,保存(安全起见)  4.在右边窗口右击PendingFileRenameOperations,选择删除,然后确认

MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理_MsSql

开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法: <SQL Server创建链接服务器的存储过程示例分享>http://www.jb51.net/article/52314.h

MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理

开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法: <SQL Server创建链接服务器的存储过程示例分享>http://www.jb51.net/article/52314.h

MS SQL Server 2000数据转换服务部署

server|数据|转换 1. 目标 MS SQL Server做大数据量传输的时候,我们大多会用到数据传输服务.现在假设,在开发环境下,我们已经设计好了DTS包并且运行良好,接下来我们要做的事情是迁移和部署这个DTS数据包.所以,我们需要把设计环境下的DTS包保存成结构化的存储文件,并且这个文件导入到目标环境下的MS SQL Server中,最后添加作业,让MS SQL Server Angent在我们预期的事情执行这个DTS包完成数据传输工作.其中需要重点解决的一个问题是,在目标环境中,DT

了解MS SQL Server 2000视图

视图的好处,它可以横纵分割表,在视图上的可以执行与在表上一至的操作,如:Insert.Update.Delete.这些操作与在表上的相应操作大至相同,不过也有些不同之处.在视图上进行操作的列是只属于视图的列,这些列不一定包含对应表中的所有列,所以在执行Insert操作或Update操作时,如果视图中有未被包含的列,并且这些列是Not NULL的,那么在视图上执行相应的Insert操作或Update操作时就会失败,还有在视图上如果使用了Group By.Distinct等操作时,不能执行Inser

SQL SERVER 2000 中的标识值获取函数

server|函数 IDENTITY(标识)列,也有很多人称之为自增列,在SQL Server 2000中,标识列通过IDENTITY来定义,下面是与获取最后插入记录的标识值有关的函数的一个示例说明     SQL Server 中,可以使用 SCOPE_IDENTITY(). @@IDENTITY . IDENT_CURRENT() 来取得最后插入记录的值值,它们的区别在于:SCOPE_IDENTITY() 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.一个