拼音码查询 使用存储过程+触发器 自动实现

步骤:

1.下载 中文 拼音对照表 下载地址:http://download.csdn.net/source/326464

2.将下载的T-SQL语句放入需要功能的数据库中运行. 将生成 pycode 这张表

3.在需要实现的表中新建字段,命名为Namepy

4.运行以下存储过程和触发器:

<1>存储过程的用处是将字段中的中文每个读出查询到它的拼音码(无需更改)

<2>触发器的作用是:当中文字段被Insert或者Update后,触发器会自动运行插入或改变拼音码  

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
-- 存储过程 将汉字转化成拼音输出
create proc Hz2Py
@hz varchar ( 200 ),
@py varchar ( 200 ) output
AS
declare @i int
declare @chr varchar ( 2 )
declare @pyc varchar ( 1 )
set @i = 1
while ( @i <= len ( @hz )) begin
set @chr = substring ( @hz , @i , 1 )
set @pyc = ( select py from pycode where hz = @chr )
if ( @pyc is null )
set @py = @py + @chr
else
set @py = @py + @pyc
Set @i = @i + 1
end

-- 触发器 当插入,更新时 更改拼音码
--Namepy 为拼音字段
--bank 为需要实现表的表名
--customername 为汉字字段
--cardid 为bank表主键
create trigger Namepy on bank for insert , update
AS
declare @name varchar ( 100 ), @npy varchar ( 100 ), @cid char ( 10 )

if ( update (customername)) begin
set @npy = ''
select @name = customername, @cid = cardid from inserted
--调用存储过程
exec Hz2Py @name , @npy output

update bank set namepy = @npy where cardid = @cid

end
GO

 

嗯.. 如果还有什么问题.可以留言给我..

转载于:https://www.cnblogs.com/tweet/archive/2010/02/08/1665783.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值