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

Откуда: Тюмень
Сообщений: 63
Всем привет!
У меня такая дилемма:
При миграции базы сменились id'шники в Table1 (a - старая база, b - новая база), сместился Сидоров (на самом деле из там с тысячу).
Все бы ничего, но в базе Table2 данные не изменились, т.е. если раньше Table1a.ID соответствовал значению Table2a.User, то теперь нет.
Надо таблице Table2b.User присвоить соответствующие значения.

Table1a Table1b
ID FIO ID FIO
1 Иванов 1 Иванов
2 Петров 2 Сидоров
3 Сидоров

Table2a Table2b
TimeVal User (table1a.ID) TimeVal User (table1b.ID)
10:30 1 10:30 1
10:35 3 10:35 3
11:35 3 11:35 3

вот, спрашивайте. наверняка не понятно объяснил.
30 окт 12, 06:52    [13394281]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
svovach
...Надо таблице Table2b.User присвоить соответствующие значения...
А может всё же лучше в Table1a у Сидорова сменить ID?
30 окт 12, 08:17    [13394427]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Ой, ну и оформление =( простите пожалуйста.

Нет, в Table1 этот ID занят.
30 окт 12, 08:25    [13394448]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3059
svovach,
может грохнуть таблицу Table1
и залить по новой, отключив у ней колонку с identity, дабы ID не менялись в предь
и только потом включить?
30 окт 12, 08:28    [13394462]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
HandKot
svovach,
может грохнуть таблицу Table1
и залить по новой, отключив у ней колонку с identity, дабы ID не менялись в предь
и только потом включить?


Я бы с превеликим удовольствием. Но производитель ПО раз в полгода выпускает обновление, и при каждом таком обновление он убирает все изменения сделанные из вне. я убирал в прошлом году, теперь вот маюсь.

Table1a Table1b
ID FIO ID FIO
1 Иванов 1 Иванов
2 Петров 2 Сидоров
3 Сидоров
Table2a Table2b
TimeVal User (table1a.ID) TimeVal User (table1b.ID)
10:30 1 10:30 1
10:35 3 10:35 3
11:35 3 11:35 3


Еще раз извиняюсь за оформление.
30 окт 12, 08:55    [13394558]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Ладно, можно изменить в table1 данные я перенесу.
30 окт 12, 08:59    [13394569]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
как сделать из этого конфету?
update table2a
set user = '2'
where user = '3'

горит прям вопрос, жаль что за 10 лет программирование мне так и не далось.
30 окт 12, 09:02    [13394590]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3059
svovach
как сделать из этого конфету?
update table2a
set user = '2'
where user = '3'

горит прям вопрос, жаль что за 10 лет программирование мне так и не далось.


судя по приведенным данным, лучше поправить таблицу Table1b

update Table1b set ID = 3 Where FIO = 'Сидоров'


но повторюсь, может ее грохнуть и перелить один к одному из старой базы?
30 окт 12, 10:38    [13395016]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
HandKot
svovach
как сделать из этого конфету?
update table2a
set user = '2'
where user = '3'

горит прям вопрос, жаль что за 10 лет программирование мне так и не далось.


судя по приведенным данным, лучше поправить таблицу Table1b

update Table1b set ID = 3 Where FIO = 'Сидоров'


но повторюсь, может ее грохнуть и перелить один к одному из старой базы?


Мне нужен скрипт что бы по всем пробежаться.
Я бы перелил, но в Table1b уже заянты id, т.е. ID=3 уже Попов, но до определенной даты.
С датами проблем нет. Так что надо именно поменять ID в соответствии с Table1b.
30 окт 12, 11:26    [13395329]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Ладно упрощаю задачу до нельзя.

к колонке User(int) прибавить +1 в таком то диапазоне чисел, примерно так:
update table2a
set user + 1
where user<10 and user >50.

Help!
30 окт 12, 11:48    [13395484]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3059
svovach
HandKot
пропущено...


судя по приведенным данным, лучше поправить таблицу Table1b

update Table1b set ID = 3 Where FIO = 'Сидоров'


но повторюсь, может ее грохнуть и перелить один к одному из старой базы?


Мне нужен скрипт что бы по всем пробежаться.
Я бы перелил, но в Table1b уже заянты id, т.е. ID=3 уже Попов, но до определенной даты.
С датами проблем нет. Так что надо именно поменять ID в соответствии с Table1b.

никак
так как нельзя определить какому новому ID в Table1b соответствует старый ID в Table1а

либо я что-то не допонимаю
опять же, почему нельзя убить Table1b и создать ее полной копией Table1а?
или у Вас базы не должны быть идентичными?
30 окт 12, 11:49    [13395491]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
HandKot,
замена не возможна. Помоги с синтаксисом update что я выше написал, плиз.
30 окт 12, 11:56    [13395549]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в таблице.  [new]
svovach
Member

Откуда: Тюмень
Сообщений: 63
Все разобрался, BOL.
30 окт 12, 14:03    [13396722]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить