金蝶K/3、KIS旗舰版、KIS专业版更新物料助记码

tlsoft 2022-5-28 431

一、先创建函数

  1. go  
  2. if exists(select * from sysobjects where name = 'fun_getPY'  
  3.     and xtype = 'Fn')  
  4. begin  
  5. drop  
  6. function fun_getPY  
  7. end  
  8. go  
  9. create  
  10. function fun_getPY(@str nvarchar(4000))  
  11. returns nvarchar(4000)  
  12. as  
  13. begin  
  14. declare@ word nchar(1), @PY nvarchar(4000)  
  15. set@ PY = ''  
  16. while len(@str) > 0  
  17. begin  
  18. set@ word = left(@str, 1)  
  19.     --如果非汉字字符, 返回原字符  
  20. set@ PY = @PY + (  
  21.     case when unicode(@word) between 19968 and 19968 + 20901 then(  
  22.         select top 1 PY from(  
  23.             select 'A'  
  24.             as PY, N '驁'  
  25.             as word union all select 'B', N '簿'  
  26.             union all select 'C', N '錯'  
  27.             union all select 'D', N '鵽'  
  28.             union all select 'E', N '樲'  
  29.             union all select 'F', N '鰒'  
  30.             union all select 'G', N '腂'  
  31.             union all select 'H', N '夻'  
  32.             union all select 'J', N '攈'  
  33.             union all select 'K', N '穒'  
  34.             union all select 'L', N '鱳'  
  35.             union all select 'M', N '旀'  
  36.             union all select 'N', N '桛'  
  37.             union all select 'O', N '漚'  
  38.             union all select 'P', N '曝'  
  39.             union all select 'Q', N '囕'  
  40.             union all select 'R', N '鶸'  
  41.             union all select 'S', N '蜶'  
  42.             union all select 'T', N '籜'  
  43.             union all select 'W', N '鶩'  
  44.             union all select 'X', N '鑂'  
  45.             union all select 'Y', N '韻'  
  46.             union all select 'Z', N '咗'  
  47.         ) T where word >= @word collate Chinese_PRC_CS_AS_KS_WS order by PY ASC  
  48.     )  
  49.     else@ word end)  
  50. set@ str = right(@str, len(@str) - 1)  
  51. end  
  52. return@ PY  
  53. end  
  54. go  

二、调用函数执行物料名称转助记码

  1. update     t_ICItemCore set FHelpcode=dbo.fun_getPY(left(Fname,30))  
  2. go  



最新回复 (0)
返回
发新帖