Добрый день! После переноса сервисов и справочников возникла проблема с переносом контрагентов? Так как контрагенты связаны по внешнему ключу с контактами нужно по идее перенести контакты) Но в свою очередь контакты тоже связаны с контрагентами по внешнему ключу) как быть???
Нравится
Перенесите контрагентов и контактов без связей, а потом добавьте связи update'ами.
Что то я никак не могу сообразить как теперь обновить записи) Перенес контакты и контрагентов) А как теперь у контактов обновить AccountID и у контрагентов поле основной контакт????
Добрый день!
Я бы на Вашем месте все выгрузила в Excel, а после этого просто настроила импорт из файла сразу со связкой контакта с контрагентом и наоборот.
http://community.terrasoft.ua/blogs/3352
Или же вручную sql-запросами проставлять контрагентов.
Приятной работы!
Максим, напрашивается вопрос о том, каким образом Вы перенесли данные о контактах и контрагентах?
Если запросом, то наверное Вы помимо полей Name, CityID и т.д., переносили и поле ID? Если да (то есть Вам удалось реализовать запрос), то трудностей с обновлением не будет - ведь все необходимые контакты и контрагенты уже перенесены, ID всех записей в двух базах совпадают.
Если же записи были перенесены не запросом, а другими средствами, укажите какими. Но и в этом случае вариант с Update'ами наиболее рациональный.
Да записи были перенесены запросом. Вот текст
[sql]
Перенос контрагентов
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
[/sql]
Контакты
[sql]
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]
[/sql]
Вот настал новый день и все вроде заработало) Вот запрос обновления [sql]
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)
[/sql]
Maxim, я бы очень осторожно относился к таким запросам - без условий where. Дело в том, что если для записей [TSCRM33 SMS Work].[dbo].[tbl_Contact] не будет соответствия в [MGMN_CRM_Work].[dbo].[tbl_Contact].ID, то Вы затрете нужную информацию. Например, если уже кто-то в базе [TSCRM33 SMS Work] поработал и создал новых Контрагентов и привязал их к Контактам. Поэтому для надежности добавьте проверку:
[sql]
...
WHERE EXISTS(SELECT * FROM [MGMN_CRM_Work].[dbo].[tbl_Contact] T1
WHERE [TSCRM33 SMS Work].[dbo].[tbl_Contact].ID = T1.ID)
[/sql]