Показать сообщение отдельно
Старый 21.03.2011, 12:55   #3  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Почему бы просто не перенести напрямую данные таблиц USERGROUPINFO и ACCESSRIGHTSLIST sql скриптом ?

В свое время делал что то подобное... Но перенесенные права все равно придется адаптировать к новой структуре 5.0 так как появились новые таблицы, поля в таблицах меню...

X++:
declare @recid as bigint;

select @recid = MIN(recid) from [axapta].[dbo].[USERGROUPINFO];

insert into [axapta].[dbo].[USERGROUPINFO]
select [ID]
      ,[NAME]
      ,[RECVERSION]
      ,@recid - (ROW_NUMBER() OVER(order by [recid])) as [Recid]
from [axapta_old].[dbo].[USERGROUPINFO] b
where b.ID like 'ax%' 

select @recid = MIN(recid) from [axapta].[dbo].[ACCESSRIGHTSLIST];

insert into [axapta].[dbo].[ACCESSRIGHTSLIST]
SELECT [GROUPID]
      ,[DOMAINID]
      ,[RECORDTYPE]
      ,[PARENTID]
      ,[ID]
      ,[ELEMENTNAME]
      ,[ACCESSTYPE]
      ,[ACCESSTYPEFKEYUSE]
      ,[MODIFIEDDATETIME]
      ,[DEL_MODIFIEDTIME]
      ,[MODIFIEDBY]
      ,[CREATEDDATETIME]
      ,[DEL_CREATEDTIME]
      ,[CREATEDBY]
      ,[RECVERSION]
      ,@recid - (ROW_NUMBER() OVER(order by [recid])) as [Recid]
  FROM [Axapta_old].[dbo].[ACCESSRIGHTSLIST] a
  where a.GROUPID like 'ax%'
За это сообщение автора поблагодарили: axalex (1).