Добрый день! После переноса сервисов и справочников возникла проблема с переносом контрагентов? Так как контрагенты связаны по внешнему ключу с контактами нужно по идее перенести контакты) Но в свою очередь контакты тоже связаны с контрагентами по внешнему ключу) как быть???
Нравится
Перенесите контрагентов и контактов без связей, а потом добавьте связи update'ами.
Что то я никак не могу сообразить как теперь обновить записи) Перенес контакты и контрагентов) А как теперь у контактов обновить AccountID и у контрагентов поле основной контакт????
Добрый день!
Я бы на Вашем месте все выгрузила в Excel, а после этого просто настроила импорт из файла сразу со связкой контакта с контрагентом и наоборот.
http://community.terrasoft.ua/blogs/3352
Или же вручную sql-запросами проставлять контрагентов.
Приятной работы!
Максим, напрашивается вопрос о том, каким образом Вы перенесли данные о контактах и контрагентах?
Если запросом, то наверное Вы помимо полей Name, CityID и т.д., переносили и поле ID? Если да (то есть Вам удалось реализовать запрос), то трудностей с обновлением не будет - ведь все необходимые контакты и контрагенты уже перенесены, ID всех записей в двух базах совпадают.
Если же записи были перенесены не запросом, а другими средствами, укажите какими. Но и в этом случае вариант с Update'ами наиболее рациональный.
Да записи были перенесены запросом. Вот текст
Перенос контрагентов INSERT INTO [TSCRM33 SMS Work].[dbo].[tbl_Account] ([ID] ,[CreatedOn] ,[CreatedByID] ,[ModifiedOn] ,[ModifiedByID] ,[Name] ,[OfficialAccountName] ,[PrimaryContactID] ,[TerritoryID] ,[AnnualRevenue] ,[EmployeesNumber] ,[OwnerID] ---,[CampaignID] ,[AddressTypeID] ,[Address] ,[CityID] ,[StateID] ,[ZIP] ,[CountryID] ,[ActivityID] ,[FieldID] ,[Communication1] ,[Communication2] ,[Communication3] ,[Communication4] ,[Communication5] ,[Communication1TypeID] ,[Communication2TypeID] ,[Communication3TypeID] ,[Communication4TypeID] ,[Communication5TypeID] ,[Description] ,[AccountTypeID] ,[Code] ,[TaxRegistrationCode] ,[INN] ,[KPP] ,[PrimaryGovRegNumber] ,[GovRegCertificateData] ,[TopManagerID] ,[CodeOKATO] ,[CodeOKPO] ,[CodeOKOGU] ,[CodeOKOPF] ,[CodeOKFS] ,[CodeOKVED] ,[UsePhoneNumbersInApplication] ,[StatusAccount] ,[Commentary] ,[TariffID] ,[SubjectsID] ,[RegionID] ,[NPID] ,[StreetID] ,[Adres] ,[ImportID] ,[ContactBiiling]) SELECT [ID] ,[CreatedOn] ,[CreatedByID] ,[ModifiedOn] ,[ModifiedByID] ,[Name] ,[OfficialAccountName] ,(Select ID from tbl_Contact where tbl_Contact.ID = [MGMN_CRM_Work].[dbo].[tbl_Account].PrimaryContactID) ,[TerritoryID] ,[AnnualRevenue] ,[EmployeesNumber] ,[OwnerID] ---,[CampaignID] ,[AddressTypeID] ,[Address] ,[CityID] ,[StateID] ,[ZIP] ,'5E4AE4D2-5574-4D81-8D19-88B399BAA510' ,[ActivityID] ,[FieldID] ,[Communication1] ,[Communication2] ,[Communication3] ,[Communication4] ,[Communication5] ,[Communication1TypeID] ,[Communication2TypeID] ,[Communication3TypeID] ,[Communication4TypeID] ,[Communication5TypeID] ,[Description] ,[AccountTypeID] ,[Code] ,[TaxRegistrationCode] ,[INN] ,[KPP] ,[PrimaryGovRegNumber] ,[GovRegCertificateData] ,[TopManagerID] ,[CodeOKATO] ,[CodeOKPO] ,[CodeOKOGU] ,[CodeOKOPF] ,[CodeOKFS] ,[CodeOKVED] ,[UsePhoneNumbersInApplication] ,[StatusAccount] ,[Commentary] ,[TariffID] ,[SubjectsID] ,[RegionID] ,[NPID] ,[StreetID] ,[Adres] ,[ImportID] ,[ContactBiiling] FROM [MGMN_CRM_Work].[dbo].[tbl_Account] Where not Name is Null
Контакты
INSERT INTO [TSCRM33 SMS Work].[dbo].[tbl_Contact] ([ID] ,[CreatedOn] ,[ModifiedOn] ,[Dear] ,[JobTitle] ,[CreatedByID] ,[GenderID] ---,[AccountID] ,[OwnerID] ,[ModifiedByID] ,[AddressTypeID] ,[Address] ,[CityID] ,[StateID] ,[CountryID] ,[JobID] ,[Communication1] ,[Communication2] ,[Communication3] ,[Communication4] ,[Communication1TypeID] ,[Communication2TypeID] ,[Communication3TypeID] ,[Communication4TypeID] ,[TerritoryID] ,[SalutationID] ,[Description] ,[DepartmentID] ,[ZIP] ---,[CampaignID] ,[Name] ,[DecisionRoleID] ,[DoNotCall] ,[EmailOptOut] ,[ContactTypeID] ,[SubjectsID] ,[RegionID] ,[NPID] ,[StreetID] ,[Adres]) SELECT [ID] ,[CreatedOn] ,[ModifiedOn] ,[Dear] ,[JobTitle] ,[CreatedByID] ,[GenderID] ---,[AccountID] ,[OwnerID] ,[ModifiedByID] ,[AddressTypeID] ,[Address] ,[CityID] ,[StateID] ,[CountryID] ,(Select JobID from tbl_Job where tbl_Job.ID = [MGMN_CRM_Work].[dbo].[tbl_Contact].JobID ) ,[Communication1] ,[Communication2] ,[Communication3] ,[Communication4] ,[Communication1TypeID] ,[Communication2TypeID] ,[Communication3TypeID] ,[Communication4TypeID] ,[TerritoryID] ,[SalutationID] ,[Description] ,[DepartmentID] ,[ZIP] ---,[CampaignID] ,[Name] ,[DecisionRoleID] ,[DoNotCall] ,[EmailOptOut] ,[ContactTypeID] ,[SubjectsID] ,[RegionID] ,[NPID] ,[StreetID] ,[Adres] FROM [MGMN_CRM_Work].[dbo].[tbl_Contact]
Вот настал новый день и все вроде заработало) Вот запрос обновления
UPDATE [TSCRM33 SMS Work].[dbo].[tbl_Contact] SET [AccountID] = (select AccountID from [MGMN_CRM_Work].[dbo].[tbl_Contact] where [TSCRM33 SMS Work].[dbo].[tbl_Contact].ID = [MGMN_CRM_Work].[dbo].[tbl_Contact].ID)
Maxim, я бы очень осторожно относился к таким запросам - без условий where. Дело в том, что если для записей [TSCRM33 SMS Work].[dbo].[tbl_Contact] не будет соответствия в [MGMN_CRM_Work].[dbo].[tbl_Contact].ID, то Вы затрете нужную информацию. Например, если уже кто-то в базе [TSCRM33 SMS Work] поработал и создал новых Контрагентов и привязал их к Контактам. Поэтому для надежности добавьте проверку:
... WHERE EXISTS(SELECT * FROM [MGMN_CRM_Work].[dbo].[tbl_Contact] T1 WHERE [TSCRM33 SMS Work].[dbo].[tbl_Contact].ID = T1.ID)