金蝶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;
隻要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。