金蝶KIS&K3助记码SQL数据库批量刷新

金蝶KIS&K3助记码SQL数据库批量刷新

用的次数不多,就没有写入存储过程或者触发里面了,可以自行实现。

第一步选择对应账套的数据库,执行下面的命令,这个是一个函数。

go 
if exists (select * from sysobjects where name='fun_getPY' and xtype='Fn') 
begin 
drop function fun_getPY 
end 
go 
create function fun_getPY(@str nvarchar(4000)) 
returns nvarchar(4000) 
as 
begin 
declare @word nchar(1),@PY nvarchar(4000) 
set @PY='' 
while len(@str)>0 
begin 
set @word=left(@str,1) 
--如果非汉字字符,返回原字符 
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901 
then (select top 1 PY from ( 
select 'A' as PY,N'' as word 
union all select 'B',N'簿' 
union all select 'C',N'' 
union all select 'D',N'' 
union all select 'E',N'' 
union all select 'F',N'' 
union all select 'G',N'' 
union all select 'H',N'' 
union all select 'J',N'' 
union all select 'K',N'' 
union all select 'L',N'' 
union all select 'M',N'' 
union all select 'N',N'' 
union all select 'O',N'' 
union all select 'P',N'' 
union all select 'Q',N'' 
union all select 'R',N'' 
union all select 'S',N'' 
union all select 'T',N'' 
union all select 'W',N'' 
union all select 'X',N'' 
union all select 'Y',N'' 
union all select 'Z',N'' 
) T 
where word>=@word collate Chinese_PRC_CS_AS_KS_WS 
order by PY ASC) else @word end) 
set @str=right(@str,len(@str)-1) 
end 
return @PY 
end 
go 

--物料
update     t_ICItemCore set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go

 

第二步,更新你需要的地方,物料、部门、职员、仓库、供应商、客户等的助记码

有些表格的字段需要自己做对应,下面的更新不能应用于所有版本,如执行错误,请自行调试,谢谢

--物料
update     t_ICItemCore set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go


--部门
update     t_Department set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go


--职员
update      t_Emp  set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go


--仓库
update      t_Stock  set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go

--供应商
update       t_Supplier  set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go

    

--客户
update       t_Organization set FHelpcode=dbo.fun_getPY(left(Fname,30)) 
go

 

posted @ 2018-06-22 10:37  landv  阅读(1565)  评论(0编辑  收藏  举报