zoukankan      html  css  js  c++  java
  • 拼音码查询 使用存储过程+触发器 自动实现

    步骤:

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

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

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

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

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

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

    代码
    --存储过程 将汉字转化成拼音输出
    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

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

  • 相关阅读:
    Zend Studio使用
    iOS中block实现的探究
    用python演示一个简单的AST(抽象语法树)
    Cocos2D-x权威指南: CCNode类方法:
    ListView的优化
    可变參数
    android媒体--stagefright概述【一】
    flume安装及配置
    linux包之sysstat之mpstat与pidstat命令
    Java实现第十届蓝桥杯等差数列
  • 原文地址:https://www.cnblogs.com/tweet/p/1665783.html
Copyright © 2011-2022 走看看