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

Откуда:
Сообщений: 8
Здравствуйте.
Есть MSSQLServer2008 в нем есть некая таблица. Есть такая же таблица в файле xls, в котором все строки упорядочены по столбцу name нужно из экселевской таблицы в SQL вставить около 500 строк столбца eng_name. Но так чтобы таблица в SQL была упорядочена тоже по name. Как можно это сделать?
10 июл 12, 16:24    [12845948]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ormuz
Но так чтобы таблица в SQL была упорядочена тоже по name


таблица изначально - это куча у которой нет никакого порядка...порядок задаётся при выборке явным указанием ORDER BY
10 июл 12, 16:28    [12845978]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
Да даже если и не куча, порядок определяется только при выборке и только с указанием order by.

Сообщение было отредактировано: 10 июл 12, 16:29
10 июл 12, 16:28    [12845984]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Ormuz
Member

Откуда:
Сообщений: 8
Понятно что Order by. Дело в том что таблица из БД была открыта в экселе, упорядочена по name, отредадактирован столбец eng_name теперь все что отредактировано нужно вставить в БД, но чтоб порядок не сбился естественно!
10 июл 12, 16:37    [12846067]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
Ormuz
Понятно что Order by. Дело в том что таблица из БД была открыта в экселе, упорядочена по name, отредадактирован столбец eng_name теперь все что отредактировано нужно вставить в БД, но чтоб порядок не сбился естественно!
Еще раз. В таблице нет никакого порядка. Как бы вы не вставляли, он не появится. Чтобы появился порядок, из таблицы данные нужно правильно выбирать.
10 июл 12, 16:40    [12846096]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ormuz
теперь все что отредактировано нужно вставить в БД, но чтоб порядок не сбился естественно!

Это называется UPDATE, а не "вставить в БД, но чтоб порядок не сбился"
10 июл 12, 16:41    [12846113]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Ormuz
вставить около 500 строк столбца eng_name. Но так чтобы таблица в SQL была упорядочена тоже по name. Как можно это сделать?


чтобы вы могли в результате запроса к базе получать всё ту же сортировку по name, вам одного столбца eng_name будет мало, придётся вставлять name тоже, либо ещё создавать какое-то поле, хоть и числовое, указывающее порядок сортировки
10 июл 12, 16:45    [12846131]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Ormuz
Member

Откуда:
Сообщений: 8
Мне нужно сделать UPDATE таблицы в базе MSSQL из файла xls. Файл этот перед редактированием упорядочивался по столбцу name, и редактировались первые 500 строк (упорядоченные по name) и только один столбец eng_name. Нужно все то что было отредактировано в xls вернуть в базу MSSQL. Например выделить первые 500 строк (упорядоченной по name таблицы) столбца eng_name, копировать и вставить в таблицу БД предварительно упорядочив ее тоже по name. Понятно объяснил?
10 июл 12, 16:48    [12846152]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Ormuz,

Glory
Ormuz
теперь все что отредактировано нужно вставить в БД, но чтоб порядок не сбился естественно!

Это называется UPDATE, а не "вставить в БД, но чтоб порядок не сбился"


действительно, не вставка, а update понадобится. но и тут для сопоставления не обойтись без столбца name
10 июл 12, 16:49    [12846159]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Ormuz
Member

Откуда:
Сообщений: 8
Менялся только столбец eng_name, т.е. можно из того же xls файла сделать выборку по полю name какие строки апдейтить.
10 июл 12, 16:50    [12846171]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ormuz
Понятно объяснил?

Это и называется командой UPDATE.
Нужно взять и написать ее.
10 июл 12, 16:52    [12846191]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Ormuz
Member

Откуда:
Сообщений: 8
Это я понял, ну а как скрипт написать? Я даже не знаю как к файлу xls из Studio обратиться :(
10 июл 12, 16:53    [12846192]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ormuz
Это я понял, ну а как скрипт написать?

Руками.

Ormuz
Я даже не знаю как к файлу xls из Studio обратиться

Никак.
Придется писать скрипт, который обращается к xls
Используйте OPENROWSET/OPENDATASOURCE
10 июл 12, 16:57    [12846224]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Владимир Затуливетер
Member

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

-- создайте таблицу
create table dbo.XlsData (
	  name nvarchar(255) primary key
	, eng_name nvarchar(255)
)

-- открой таблицу dbo.XlsData в ManagmentStudio и скопипасть суда все из екселя
-- чтобы открыть: правая клавиша на таблице "Edit Top 200 Rows"

-- потом выполни скрипт
update t
set eng_name = xls.eng_name
from dbo.YourTableName t
	inner join dbo.XlsData xls on xls.name = t.name
	 


а вообще как уже написали лучше
Glory
Используйте OPENROWSET/OPENDATASOURCE
10 июл 12, 21:02    [12847279]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Владимир Затуливетер
-- открой таблицу dbo.XlsData в ManagmentStudio и скопипасть суда все из екселя
SELECT * FROM OpenDataSource('ClipboardProvider', 'SELECT ...')
А чё, неплохой провайдер передачи данных.
11 июл 12, 03:12    [12848219]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Mnior
Владимир Затуливетер
-- открой таблицу dbo.XlsData в ManagmentStudio и скопипасть суда все из екселя
SELECT * FROM OpenDataSource('ClipboardProvider', 'SELECT ...')
А чё, неплохой провайдер передачи данных.


Ну и чо подтрунивать - то ? Человек с марса же.

И я предложу в четыре клика - в SSMS сделать импорт из ёксельного листа в таблицу и написать простой апдейт. Как-то так.
11 июл 12, 05:53    [12848244]     Ответить | Цитировать Сообщить модератору
 Re: Вставить в таблицу столбец из xls  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Ken@t
Ну и чо подтрунивать - то ? Человек с марса же.
А с чего вы решили что я подшучиваю над Владимиром?
Я б даже сказал наоборот.
11 июл 12, 10:38    [12849033]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить