天天看點

金蝶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      

網名:浩秦;

郵箱:root#landv.pw;

隻要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。