首页 > 其他 > 详细

助记码的全部更新

时间:2014-12-31 18:27:48      阅读:172      评论:0      收藏:0      [点我收藏+]

需要的两个函数:

USE [oaerp]
GO
/****** Object:  UserDefinedFunction [dbo].[f_ch2py]    Script Date: 12/31/2014 17:12:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[f_ch2py](@chn nchar(1))
returns char(1)
as
begin
declare @n int
declare @c char(1)
set @n = 63

select @n = @n +1,
       @c = case chn when @chn then char(@n) else @c end
from(
 select top 27 * from (
     select chn =
‘吖‘ union all select
‘八‘ union all select
‘嚓‘ union all select
‘咑‘ union all select
‘妸‘ union all select
‘发‘ union all select
‘旮‘ union all select
‘铪‘ union all select
‘丌‘ union all select  --because have no ‘i‘
‘丌‘ union all select
‘咔‘ union all select
‘垃‘ union all select
‘嘸‘ union all select
‘拏‘ union all select
‘噢‘ union all select
‘妑‘ union all select
‘七‘ union all select
‘呥‘ union all select
‘仨‘ union all select
‘他‘ union all select
‘屲‘ union all select  --no ‘u‘
‘屲‘ union all select  --no ‘v‘
‘屲‘ union all select
‘夕‘ union all select
‘丫‘ union all select
‘帀‘ union all select @chn) as a
order by chn COLLATE Chinese_PRC_CI_AS
) as b
return(@c)
end


 

USE [oaerp]
GO
/****** Object:  UserDefinedFunction [dbo].[F_GetHelpCode]    Script Date: 12/31/2014 17:12:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[F_GetHelpCode] (
@cName VARCHAR(20) )
RETURNS VARCHAR(12)
AS
BEGIN
   DECLARE @i SMALLINT, @L SMALLINT , @cHelpCode VARCHAR(12), @e VARCHAR(12), @iAscii SMALLINT
   SELECT @i=1, @L=0 , @cHelpCode=‘‘
   while @L<=12 AND @i<=LEN(@cName) BEGIN
      SELECT @e=LOWER(SUBSTRING(@cname,@i,1))
      SELECT @iAscii=ASCII(@e)
      IF @iAscii>=48 AND @iAscii <=57 OR @iAscii>=97 AND @iAscii <=122 or @iAscii=95
       SELECT @cHelpCode=@cHelpCode  +@e
      ELSE
      IF @iAscii>=176 AND @iAscii <=247
            SELECT @cHelpCode=@cHelpCode  + dbo.f_ch2py(@e)
        ELSE SELECT @L=@L-1
      SELECT @i=@i+1, @L=@L+1 END
    RETURN @cHelpCode
END

 

执行更新语句:

update ggoods set abc = (select dbo.F_GetHelpCode(name))

--name是商品名称

助记码的全部更新

原文:http://blog.csdn.net/ljq54/article/details/42297171

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!