会员名称: 登录密码: (找回密码) 登录 会员注册

分类

问题
上个主题 下个主题
主题:kis专业版9.1sp1对几百个帐套用户管理的支持
avatar
love618
IT 行业
Ta擅长:
本周回答(0),本月回答(0)
发贴时间:2008-9-23 23:55:29   已到期,未完成 2008-10-14 0:35:36
赠分:10      回答:0   已经到期    
遇到一个客户在9.1中建了600多个帐套,后来建的帐套中的用户不能登陆(大约200多个的时候).我分析了一下是存储过程的问题,作如下修改是否妥当?
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Procedure Pro_BuildAcctAllUser
AS
SET NOCOUNT ON

declare @AllActSql varchar(8000)
declare @ActName varchar(50)
if object_id('tempdb..##tmp_Acct') is not null drop table ##tmp_Acct
create table ##tmp_Acct(FName varchar(30))
if object_id('AcctCtl..T_AcctAllUser') is null
Create Table AcctCtl..T_AcctAllUser(FUserName varchar(30) primary key,FUserAllCount int)
else
truncate table AcctCtl..T_AcctAllUser
if object_id('AcctCtl..T_UserNotView') is null Create table AcctCtl..t_UserNotView(FUserName varchar(30) primary key,FPwd varchar(32),FAcctIDStr varchar(8000) not null)

DECLARE MyCursor CURSOR FOR select b.name from AcctCtl..T_AD_KDACCOUNT_GL a inner join master..Sysdatabases b on a.FDBName =b.name where a.FDBType =1
open MyCursor
fetch from MyCursor into @ActName
while @@fetch_status=0
begin
set @AllActSql=''
select @AllActSql='insert into ##tmp_Acct(FName) select FName from '+@ActName+'..t_user where FUserID>=16394'
execute(@AllActSql)
fetch next from MyCursor into @ActName
end
close MyCursor
deallocate MyCursor

insert into AcctCtl..T_AcctAllUser(FUserName,FUserAllCount)select FName,count(FName) from ##tmp_Acct group by FName
Drop Table ##tmp_Acct

SET NOCOUNT OFF

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
修改时间:2008-9-23 23:56:40
View as RSS news feed in XML
© 2008 金蝶国际软件集团 版权所有  Version:3.2.2008.27643 页面时间:103.0949Ms