Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Необходимо реализовать insert в таблицу бд по столбцам:
iddisc | cardnm | status | dateend

При условии что значения столбцов iddisc,status,dataend статические,
а значение cardnm необходимо брать из прилинкованого .xls файла

и так 500 раз :)

Может ли MSSQL это реализовать?
21 дек 11, 13:02    [11802340]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
libru
Member

Откуда:
Сообщений: 877
добавить статику в ёксель, выделить все и скопипастить в SSMS в режиме редактирования данных таблицы
21 дек 11, 13:05    [11802365]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
libru,
если можно чуть подробнее, я далек от этого....
21 дек 11, 13:08    [11802399]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
дык можно и запросик сделать к экселевскому файлу... и данные из него просто подлить через SSIS
21 дек 11, 13:09    [11802416]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
SanyL,
Запрос из экселя я сделал, я не понимаю каким образом это дожно проработать 500 раз,
если можно хоть маленький пример кода
21 дек 11, 13:11    [11802438]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
estonian
Запрос из экселя я сделал, я не понимаю каким образом это дожно проработать 500 раз,

Запрос должен сработать 1 раз
И выбрать все 500 записей из вашего XLS файла
21 дек 11, 13:14    [11802461]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Glory,

я уже понял , спасибо, просто не понял что такое SSIS
21 дек 11, 13:16    [11802493]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
estonian
Glory,

я уже понял , спасибо, просто не понял что такое SSIS

Всмысле с первого раза :)
21 дек 11, 13:17    [11802498]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
SanyL,
Как оказалось в mssql express отсутствует SSIS :(

Возможно ли сделать все именно запросом без использования внешних инструментов?



для примера код:
--тут выбираем номера карточек
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0; HDR=NO; IMEX=1; Database=d:\disc.xls','SELECT F2 FROM [sheet1$]')
--Далее нужно вставить в таблицу, все поля заполняются статическими значиниями
кроме столбца  [code], туда и необходимо вставить все значения из xls файла
INSERT INTO [zenith2test].[dbo].[PayCard]
           ([paygroup_id]
           ,[begindate]
           ,[enddate]
           ,[maxdebt]
           ,[currentsum]
           ,[isoneoff]
           ,[code]
           ,[ispaycard]
           ,[LockedAtStation]
           ,[bonusgroup_id]
           ,[bonussumm]
           ,[bonusisfixed]
           ,[isbonuscard]
           ,[discountisfixed]
           ,[comment1]
           ,[comment2]
           ,[discountgroup_id])
     VALUES
           (<paygroup_id, int,> -- здесь все значения статические
           ,<begindate, datetime,>
           ,<enddate, datetime,>
           ,<maxdebt, numeric,>
           ,<currentsum, numeric,>
           ,<isoneoff, bit,>
           ,<code, nvarchar(50),> -- сюда нужно втулить номер карточки (там их 500)
           ,<ispaycard, bit,>
           ,<LockedAtStation, int,>
           ,<bonusgroup_id, int,>
           ,<bonussumm, numeric,>
           ,<bonusisfixed, bit,>
           ,<isbonuscard, bit,>
           ,<discountisfixed, bit,>
           ,<comment1, nvarchar(300),>
           ,<comment2, nvarchar(300),>
           ,<discountgroup_id, int,>)
21 дек 11, 14:38    [11803400]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
BPK
Member

Откуда: ни: возьмись.
Сообщений: 1601
estonian,

и какие проблемы? Насчёт синтаксиса в OPENROWSET не ручаюсь - он несколько раз менялся, но у Вас уже написано всё, что надо для задачи - подставьте select вместо VALUES.
21 дек 11, 16:02    [11804172]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
BPK,
Сообщение 1046, уровень 15, состояние 1, строка 26
Вложенные запросы в данном контексте не разрешены. Допускаются только скалярные выражения.
22 дек 11, 11:05    [11807455]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
estonian
Вложенные запросы в данном контексте не разрешены. Допускаются только скалярные выражения.

Не внутри VALUES, а _вместо_ VALUES
22 дек 11, 11:07    [11807473]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Glory
[/quot]
Не внутри VALUES, а _вместо_ VALUES[/quot]

Не совсем понял что значит "_вместо_ VALUES", имеется ввиду через переменную?
Подскажите пожалуйста, у меня c MSSQL крайне тяжело - второй раз на него смотрю.
22 дек 11, 11:27    [11807628]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
estonian
Glory

Не внутри VALUES, а _вместо_ VALUES[/quot]

Не совсем понял что значит "_вместо_ VALUES", имеется ввиду через переменную?
Подскажите пожалуйста, у меня c MSSQL крайне тяжело - второй раз на него смотрю.[/quot]Вам же написали "подставьте select вместо VALUES".
Переменные тут не при чём
22 дек 11, 11:35    [11807695]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
iap,
Получается такой вариант:
INSERT INTO [zenith2].[dbo].[PayCard]
           ([paygroup_id]
           ,[begindate]
           ,[enddate]
           ,[maxdebt]
           ,[currentsum]
           ,[isoneoff]
           ,[code]
           ,[ispaycard]
           ,[LockedAtStation]
           ,[bonusgroup_id]
           ,[bonussumm]
           ,[bonusisfixed]
           ,[isbonuscard]
           ,[discountisfixed]
           ,[comment1]
           ,[comment2]
           ,[discountgroup_id])

    SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0; HDR=NO; IMEX=1; Database=c:\disc.xls','SELECT F2 FROM [sheet1$]')) -- Это значение нужно вывести во временный столбец AS 'code' ?
           (37
           ,'01.10.2008 0:00:00'
           ,'01.10.2008 0:00:00'
           ,'0,0000','0,0000'
           ,NULL
           ,[code] -- как быть с этим значением? (это то что я выбрал селектом)
           ,False
           ,'0'
           ,NULL
           ,'0,00'
           ,False
           ,False
           ,True
           ,NULL
           ,NULL
           ,24)

Каким образом передать остальные значения, пожалуйста покажите на коде, если можно.
22 дек 11, 12:26    [11808238]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
estonian
Каким образом передать остальные значения, пожалуйста покажите на коде, если можно.

Вместо * и нужно перечислять поля и _выражения_
А не после SELECT
22 дек 11, 12:28    [11808250]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Glory
estonian
Каким образом передать остальные значения, пожалуйста покажите на коде, если можно.

Вместо * и нужно перечислять поля и _выражения_
А не после SELECT
Боюсь, у ТС трудности со словом "вместо" :))
22 дек 11, 12:31    [11808295]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Glory,

В отличии от таблицы в которую нужно все залить, в xls файле только 2 столбца с именем и номером карты, мне из него нужны только номера, остальные заливаемые значения статические (т.е их нет в xls файле). названия столбца в экселе явно не совпадает с тем что мне из него нужно вытащить.
22 дек 11, 12:34    [11808321]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
estonian
В отличии от таблицы в которую нужно все залить, в xls файле только 2 столбца с именем и номером карты, мне из него нужны только номера, остальные заливаемые значения статические (т.е их нет в xls файле). названия столбца в экселе явно не совпадает с тем что мне из него нужно вытащить.

А вы ответы читаете ?
Причем тут имена столбцов ?
Вы открывали хелп продукта для команды INSERT ?
Примеры использования рассматривали ?
И пример Inserting data using the SELECT and EXECUTE options тоже ?
22 дек 11, 12:38    [11808355]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Спасибо всем.
Тему можно закрывать.

Если кому вдруг пригодиться,
решил проблему добавлением нужных столбцов в ексель файл, как советовал libru
и запросом типа
INSERT INTO [zenith2].[dbo].[PayCard]
           ([paygroup_id]
           ,[code]
           ,[discountgroup_id])

SELECT F1 as paygroup_id,
       F7 as code,
       F17 as discountgroup_id
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
           'Excel 8.0; HDR=NO; IMEX=1;
            Database=c:\disc.xls',
            'SELECT * FROM [sheet1$]')
22 дек 11, 13:49    [11809078]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
Так
SELECT 37 as f1 FROM ...

тоже можно писать
Достаточно было прочитать стаью хелпа про команду INSERT

Сообщение было отредактировано: 22 дек 11, 13:52
22 дек 11, 13:51    [11809104]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Glory,
время не на моей стороне было :)
в дальнейшем займусь.
22 дек 11, 13:55    [11809142]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
Glory
Member

Откуда:
Сообщений: 104751
estonian
Glory,
время не на моей стороне было :)

24х часов было мало для прочтения одной статьи ?
22 дек 11, 14:11    [11809270]     Ответить | Цитировать Сообщить модератору
 Re: Множественный INSERT в таблицу со статическими и выбираемыми значениями из XLS файла  [new]
estonian
Member

Откуда:
Сообщений: 18
Оффтоп

Glory,
Посмотрите на мой никнейм :)
22 дек 11, 14:26    [11809392]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить