|
|
|
Supreme Being
      
участник
Last Login: 23.04.2007 9:22
Сообщ.: 106,
Visits: 1 209
|
|
Как заполнить новую таблицу данными, которые есть запрос к другой таблице средствами SQL?
Т.е., другими словами, как скопировать данные из запроса в новую таблицу средствами SQL?
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| INSERT INTO table1 (field1, field2, ..., fieldN) SELECT field1, field2, ..., fieldN FROM table2
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.04.2007 9:22
Сообщ.: 106,
Visits: 1 209
|
|
|
|
|
|
новичок
      
участник
Last Login: 23.11.2005 14:35
Сообщ.: 5,
Visits: 56
|
|
| Хочу сделать тоже самое, но при этом table2 это база dBase *.dbf, тоесть посредством SQL запроса конвертировать из DBase в SQL Сервер.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Надо использовать DTS (Data Transformation Services) - в Enterprise Manager есть соответствующий Wizard.
Или через Access извратиться. Создать в системе два DSN: первый указывает на dbf файл, второй на SQL сервер. Затем в Access создать таблицы из внешнего источника для каждого DSN. А затем выполнить запрос, который был приведен выше.
|
|
|
|
|
новичок
      
участник
Last Login: 23.11.2005 14:35
Сообщ.: 5,
Visits: 56
|
|
да нет на самом деле все проще, я сделал так:
insert into baza96
select * FROM OPENROWSET(''MSDASQL'',
''Driver={Microsoft dBase Driver (*.dbf)};
SourceDB=\\kamychev\share\baza96.dbf;
DefaultDir=\\kamychev\share\;
SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Russian;Null=No;Deleted=No;'',
''SELECT * FROM [baza96]'')
на локальном сервере работает, а на удаленном пишет:
Server: Msg 7415, Level 16, State 1, Line 1
Ad hoc access to OLE DB provider ''MSDASQL'' has been denied. You must access this provider through a linked server.
я так и не понял какой ему доступ нужен помогите пожалуйста, какую опцию включить надо, а то программы будут запускаться на клиентской машине и запрос соответственно не работает!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
Проще все-же через DTS.
Package пишется мастером за 10 секунд, а потом хочешь его запускай из командной строки, хочешь ставь в задания Job.
Выбираешь All Tasks/Import Data, а далее все понятно.
Указываешь источник, приемник. Только нужно будет галочку поставить
"Save DTS Package", после выполнения он появляется у тебя на сервере,
на котором ты выбрал сохранение пакета. Можно редактировать, запускать вручную
и т.п. Настоятельно рекомендую попробовать!
|
|
|
|
|
новичок
      
участник
Last Login: 23.11.2005 14:35
Сообщ.: 5,
Visits: 56
|
|
[quote="Silver"]Проще все-же через DTS.
Package пишется мастером за 10 секунд, а потом хочешь его запускай из командной строки, хочешь ставь в задания Job.
Выбираешь All Tasks/Import Data, а далее все понятно.
Указываешь источник, приемник. Только нужно будет галочку поставить
"Save DTS Package", после выполнения он появляется у тебя на сервере,
на котором ты выбрал сохранение пакета. Можно редактировать, запускать вручную
и т.п. Настоятельно рекомендую попробовать![/quote]
а как запустить Package из программы, скажите пожалуйста? или ссылку дайте если не сложно, я программирую на дельфи!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
| | |