金蝶KIS&K3助記碼SQL數據庫批量刷新
阿新 • • 發佈:2018-06-22
SQ l數據庫 then 客戶 如果 執行 ani reat weight
金蝶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
金蝶KIS&K3助記碼SQL數據庫批量刷新