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

Откуда:
Сообщений: 104
Имеются 2 таблицы: t1 - с полями s1, s2, s3 и таблица t2 - с полями s4, s5, s6. Стоит задача - все данные из столбца s1 таблицы t1 перегрузить в столбец s4 таблицы t2. Каким запросом это возможно осуществить?
17 дек 09, 17:24    [8082370]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
insert.... select
17 дек 09, 17:25    [8082374]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
--__Александр__--
insert.... select

Не могу понять как поставить соответствие, чтобы данные из столбца s1 загрузились в столбец s4.
17 дек 09, 17:57    [8082674]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
ITSpec
--__Александр__--
insert.... select

Не могу понять как поставить соответствие, чтобы данные из столбца s1 загрузились в столбец s4.

перечислить столбцы в insert и в select разумеется, как же еще
17 дек 09, 17:59    [8082681]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
insert into t2(s4) select s1 from t1
17 дек 09, 18:00    [8082689]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
--__Александр__--
insert into t2(s4) select s1 from t1

Пишет Invalid object name t2
18 дек 09, 09:03    [8084228]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
ITSpec,
Ну извините, вам виднее, где у вас таблица t2 находится и есть ли она вообще.
18 дек 09, 09:39    [8084381]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
--__Александр__--
ITSpec,
Ну извините, вам виднее, где у вас таблица t2 находится и есть ли она вообще.

Извините, тупанул - не указал в какую бд смотреть ))) Тперь появилась ошибка про уникальные ключи: Cannot insert duplicate key row in object with unique index .
18 дек 09, 10:33    [8084837]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
ITSpec
--__Александр__--
ITSpec,
Ну извините, вам виднее, где у вас таблица t2 находится и есть ли она вообще.

Извините, тупанул - не указал в какую бд смотреть ))) Тперь появилась ошибка про уникальные ключи: Cannot insert duplicate key row in object with unique index .

Ну так что непонятного в этом сообщении ? Зачем вы добавляете duplicate key ?
18 дек 09, 10:34    [8084850]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
Glory
ITSpec
--__Александр__--
ITSpec,
Ну извините, вам виднее, где у вас таблица t2 находится и есть ли она вообще.

Извините, тупанул - не указал в какую бд смотреть ))) Тперь появилась ошибка про уникальные ключи: Cannot insert duplicate key row in object with unique index .

Ну так что непонятного в этом сообщении ? Зачем вы добавляете duplicate key ?

Что-то я слегка запутался. Через ССМС в таблице t1 в ветке Columns вижу 4 поля: s1, s2, s3, s4. В ветке Indexes вижу одну запись - t1_index1 (unique, non-clustered). Мне нужно сделать индекс t1_index1 неуникальным, чтобы такая ошибка не появлялась? Просто не могу понять, почему этот sql-запрос вставляет в таблицу t1 неуникальный индекс. Откуда берется этот неуникальный индекс?
18 дек 09, 10:59    [8085094]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Что-то у меня какое-то подсознательное чувство, что автору вообще update нужен

Автор, приведите, пожалуйста, пример тестовых данных и желаемого результата
18 дек 09, 11:02    [8085122]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Может вам лучше найти для выполнения этой задачи человека, который разбирается в SQL Server.
А то чувствую, что вы там сейчас наломаете дров.

Если есть желание и время - начните от сюда:
http://msdn.microsoft.com/ru-ru/library/ms188783.aspx
18 дек 09, 11:04    [8085134]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
ITSpec
Просто не могу понять, почему этот sql-запрос вставляет в таблицу t1 неуникальный индекс. Откуда берется этот неуникальный индекс?

Ваш запрос добавляет значение, которое уже есть в таблице. А не индекс.
18 дек 09, 11:04    [8085135]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
Glory
ITSpec
Просто не могу понять, почему этот sql-запрос вставляет в таблицу t1 неуникальный индекс. Откуда берется этот неуникальный индекс?

Ваш запрос добавляет значение, которое уже есть в таблице. А не индекс.

Если выполнить запрос
автор

use mybase //в этой бд содержатся таблицы t1 и t2
delete from t2
insert into t2 (s4) select s1 from t1

то возвращается такая же ошибка.
21 дек 09, 16:11    [8096700]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
ITSpec
Glory
ITSpec
Просто не могу понять, почему этот sql-запрос вставляет в таблицу t1 неуникальный индекс. Откуда берется этот неуникальный индекс?

Ваш запрос добавляет значение, которое уже есть в таблице. А не индекс.

Если выполнить запрос
автор

use mybase //в этой бд содержатся таблицы t1 и t2
delete from t2
insert into t2 (s4) select s1 from t1

то возвращается такая же ошибка.

Это значит, что в t1 уже содержатся дубликаты
21 дек 09, 16:12    [8096713]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
Паганель
Что-то у меня какое-то подсознательное чувство, что автору вообще update нужен
Автор, приведите, пожалуйста, пример тестовых данных и желаемого результата

Исходные данные: тип varchar, тип данных столбца, в который необходимо загрузить данные такой же. Таблица, приемник данных, пустая.
Пример данных
+
202396
202562
203634
204317
204948
205615
205640
205667
205805
206179
206269
206315
206373
206391
206504
206507
206602
206772
207032
207046
207293
207336
21 дек 09, 16:17    [8096766]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
ITSpec
Таблица, приемник данных, пустая.
Значит подвела меня телепатия...

Запрос
select s1, count(*)
  from t1 
 group by t1 
having count(*) > 1
что покажет ?
21 дек 09, 16:24    [8096821]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

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

Это значит, что в t1 уже содержатся дубликаты

Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)

возвращает пустое значение
21 дек 09, 16:33    [8096907]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

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

Это значит, что в t1 уже содержатся дубликаты

Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)

возвращает пустое значение

Чудес, как известно, не бывает. А вот дубли - запросто случаются
21 дек 09, 16:36    [8096929]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
Glory
ITSpec
Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)

возвращает пустое значение

Чудес, как известно, не бывает. А вот дубли - запросто случаются

Можно каким-то образом посмотреть какое именно значение является дублирующимся?
21 дек 09, 16:50    [8097035]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Можно каким-то образом посмотреть какое именно значение является
> дублирующимся?

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=721299&msg=8096821

Posted via ActualForum NNTP Server 1.4

21 дек 09, 16:52    [8097054]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ITSpec
Glory
ITSpec
Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)

возвращает пустое значение

Чудес, как известно, не бывает. А вот дубли - запросто случаются

Можно каким-то образом посмотреть какое именно значение является дублирующимся?
s1 может принимать значение NULL?
21 дек 09, 16:53    [8097065]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
ITSpec
Member

Откуда:
Сообщений: 104
daw

> Можно каким-то образом посмотреть какое именно значение является
> дублирующимся?
https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=721299&msg=8096821

Если Вы обратили внимание, выше я писал, что
автор
Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)
возвращает пустое значение

Я имел ввиду не как посмотреть какие значения в исходной таблице являются дублирующимися, а как посмотреть какое значение посчитал дублирующимся ms sql, когда выполнял запрос.
21 дек 09, 17:03    [8097140]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
Glory
Member

Откуда:
Сообщений: 104760
ITSpec

Я имел ввиду не как посмотреть какие значения в исходной таблице являются дублирующимися, а как посмотреть какое значение посчитал дублирующимся ms sql, когда выполнял запрос.

Вот так вот, как в той ссылке показано, и надо смотреть
21 дек 09, 17:05    [8097160]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из одной таблицы в другую  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ITSpec
daw

> Можно каким-то образом посмотреть какое именно значение является
> дублирующимся?
https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=721299&msg=8096821

Если Вы обратили внимание, выше я писал, что
автор
Странно, т.к. запрос
автор
select * from t1
where s1 in (select s1 from t1 group by s1 having count(*) > 1)
возвращает пустое значение

Я имел ввиду не как посмотреть какие значения в исходной таблице являются дублирующимися, а как посмотреть какое значение посчитал дублирующимся ms sql, когда выполнял запрос.
Ну так Ваш запрос совершенно не замечает NULLы.
А уникальность для сервера - это один NULL, и не больше.
21 дек 09, 17:06    [8097163]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить