当前位置: 代码迷 >> Sql Server >> 关于sql数据库触发器的一些有关问题,望有大牛能不吝赐教
  详细解决方案

关于sql数据库触发器的一些有关问题,望有大牛能不吝赐教

热度:38   发布时间:2016-04-24 19:33:44.0
关于sql数据库触发器的一些问题,望有大牛能不吝赐教
数据库中如果一列属性的信息输入完了,这些信息是汉字,能不能利用触发器在这张表的另外一列将刚才输入的数据的首字母同时输入进去。

------解决方案--------------------
引用:
数据库中如果一列属性的信息输入完了,这些信息是汉字,能不能利用触发器在这张表的另外一列将刚才输入的数据的首字母同时输入进去。


这是要加一列助记码吧。
给你个助记码的函数

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




ALTER function [dbo].[GetPY](@str varchar(500)) 
returns varchar(500) 
as 
begin 
   declare @cyc int,@length int,@str1 varchar(100),@charcate varbinary(20) 
   set @cyc=1--从第几个字开始取 
   set @length=len(@str)--输入汉字的长度 
   set @str1=''--用于存放返回值 
   while @cyc<=@length 
       begin   
          select @charcate=cast(substring(@str,@cyc,1) as varbinary)--每次取出一个字并将其转变成二进制,便于与GBK编码表进行比较 
if @charcate>=0XB0A1 and @charcate<=0XB0C4 
         set @str1=@str1+'A'--说明此汉字的首字母为A,以下同上 
    else if @charcate>=0XB0C5 and @charcate<=0XB2C0 
      set @str1=@str1+'B' 
else if @charcate>=0XB2C1 and @charcate<=0XB4ED 
      set @str1=@str1+'C' 
else if @charcate>=0XB4EE and @charcate<=0XB6E9 
      set @str1=@str1+'D' 
else if @charcate>=0XB6EA and @charcate<=0XB7A1 
                       set @str1=@str1+'E' 
else if @charcate>=0XB7A2 and @charcate<=0XB8C0 
             set @str1=@str1+'F' 
else if @charcate>=0XB8C1 and @charcate<=0XB9FD 
                       set @str1=@str1+'G' 
else if @charcate>=0XB9FE and @charcate<=0XBBF6 
       set @str1=@str1+'H' 
else if @charcate>=0XBBF7 and @charcate<=0XBFA5 
       set @str1=@str1+'J' 
else if @charcate>=0XBFA6 and @charcate<=0XC0AB 
       set @str1=@str1+'K' 
else if @charcate>=0XC0AC and @charcate<=0XC2E7 
       set @str1=@str1+'L' 
else if @charcate>=0XC2E8 and @charcate<=0XC4C2 
       set @str1=@str1+'M' 
else if @charcate>=0XC4C3 and @charcate<=0XC5B5 
       set @str1=@str1+'N' 
   else if @charcate>=0XC5B6 and @charcate<=0XC5BD 
       set @str1=@str1+'O' 
else if @charcate>=0XC5BE and @charcate<=0XC6D9 
       set @str1=@str1+'P' 
else if @charcate>=0XC6DA and @charcate<=0XC8BA 
       set @str1=@str1+'Q' 
else if @charcate>=0XC8BB and @charcate<=0XC8F5 
                   set @str1=@str1+'R' 
else if @charcate>=0XC8F6 and @charcate<=0XCBF9 
       set @str1=@str1+'S' 
else if @charcate>=0XCBFA and @charcate<=0XCDD9 
      set @str1=@str1+'T' 
else if @charcate>=0XCDDA and @charcate<=0XCEF3 
        set @str1=@str1+'W' 
else if @charcate>=0XCEF4 and @charcate<=0XD1B8 
        set @str1=@str1+'X' 
else if @charcate>=0XD1B9 and @charcate<=0XD4D0 
       set @str1=@str1+'Y' 
else if @charcate>=0XD4D1 and @charcate<=0XD7F9