|
|
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Имеется таблица в Access, из которой нужно перенести данные в 3 таблицы SQL. Формат таблица в Access: CompanyName CompanyEmail Формат таблиц в SQL: [dbo].[company] ( [companyID] [bigint] IDENTITY (1, 1) NOT NULL , [name] [varchar] (255) NULL , .... ) ON [PRIMARY] GO [dbo].[companyEmail] ( [companyID] [bigint] NOT NULL , [emailID] [int] NOT NULL , .... ) ON [PRIMARY] GO [dbo].[email] ( [emailID] [int] IDENTITY (1, 1) NOT NULL , [value] [varchar] (255) NULL ) ON [PRIMARY] С переносом в таблицы [dbo].[email] и [dbo].[company] все понятно, а вот как потом вставить данные в [dbo].[companyEmail] - не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 14:51:12 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Непонятно, в чем собственно проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 15:48:06 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Не пойму как получить companyID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 15:54:50 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Это просто, это даже я могу попытаться ответить... Привыкшие к Access'у! SQL сервер не признается клиенту, чему равен ID (который IDENTITY), пока транзакция не закончится. Вывод. Сначала перекачайте данные по компании (и email), потом, имея ID, подвяжете свои ссылочки многие-ко-многим. Если я хоть чего-нибудь понимаю, конечно, что совершенно не факт! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:07:36 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
если уж на то пошло прилинкуй Access и запроса "перекачай" таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:28:40 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
А еще на сервере в каждой таблице можно завести по дополнительному столбцу, например, AccessID (обычный int, не IDENTITY) и прописывать туда значения из автоинкрементного столбца из Access'a. Кстати, этот же столбец пригодится, если в дальнейшем понадобится синхронизация с Access'ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:35:10 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Полность согласен с Владимиром,я так и делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 17:51:10 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Это при рАзовом переносе. А если понадобится повторная синхронизация данных, которые могли быть исправлены, добиты или удалены хоть на сервере, хоть на Access'е, то понадобится AlternateKey, поскольку SQL сервер будет вести свой собственный ID, не совпадающий с ID в Access'е. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2002, 19:14:54 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Посоветуйте новичку, как оптимизировать перенос данных. Я переношу, так: 1. перенос данных основных данных в [dbo].[company] делаю с помощью Transform Data Task, причем в дополнительно поле заносится companyID из Access. Эта операция выполняется достаточно быстро (всего около 90 000 записей); 2. следующий шаг выполняю с помощью Execute SQL Task. Создаю курсор из таблицы Access и дальше построчно: проверяю существует ли запись Email; если существует, то добавляю новую запись в [dbo].[email]; возращаю последнюю запись из [dbo].[email] и соответсвующую запись из [dbo].[company] и добавляю эти данные в [dbo].[companyEmail]; Правильно ли организован 2 шаг? Может в DTS есть другие варианты? Может отключить индексацию таблиц и лог на время переноса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2002, 12:19:00 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Я бы сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Access либо подлинковывается, либо табличка закачивается на SQL Server и удаляестя после обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2002, 13:45:13 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
>Тибиби ну почему же только разово. Поставть в расписание немного отшлифуй технику переноса и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2002, 14:25:16 |
|
||
|
Перенос Access БД в SQL с помощью DTS
|
|||
|---|---|---|---|
|
#18+
Потому что одну и ту же информацию могли дополнить в обоих БД, соответственно одна и та же смысловая запись (дополненная таким образом) будет иметь разные ID, но одинаковые Alternate Key. О чем спич? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2002, 15:23:42 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3418&tid=1820459]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 422ms |

| 0 / 0 |
