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

Откуда:
Сообщений: 11
В настоящее время в справочнике СМО ( таблица ...oms_SMO...) исчезли основные страховые компании нашего региона (..ID c 27 по 30).
Средствами MS SQL Studio вижу, что их действительно нет (кто-то случайно удалил). При загрузке карточки пациента ( у которого раньше отбражалось название одного из этих СМО) в программе отображается пустое окно.
Восстановила последний backup в БД под другим именем. Там эта таблица нормальная. Как перенести эту таблицу на место испорченной?
Против того, чтобы заново ввести эти СМО в справочник персонал ЦЗ возражает: "Мы привыкли, что все наши СМО на 1-ой странице справочника..." (..ID c 27 по 63; непустых записей с (..ID < 27) нет).
24 янв 12, 12:55    [11959431]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
надо описание таблицы.
Если по di identity ,то надо set identity_insert Table_Name on;
insert into Table_Name
select
from restore_table
where ....
set identity_insert Table_Name off;
Если нет то просто insert into Table_Name
select
from restore_table
where ....
и будет тебе счастье :)
24 янв 12, 13:06    [11959547]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
И вообще необходимо выстроить внешнии ключи,для запрета на удаления из справочника при наличии записей в карточках клиентов
24 янв 12, 13:09    [11959570]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Glory
Member

Откуда:
Сообщений: 104751
Stella35
Против того, чтобы заново ввести эти СМО в справочник персонал ЦЗ возражает: "Мы привыкли, что все наши СМО на 1-ой странице справочника..." (..ID c 27 по 63; непустых записей с (..ID < 27) нет).

И что мешает внести 3(!) записи с нужным ID ?
24 янв 12, 13:11    [11959585]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Stella35
Member

Откуда:
Сообщений: 11
denis2710 большое спасибо за тёплое участие, я давно ничего не писала на SQL (:
Glory, я Вас обожаю. Думаете получится для MSSQL 2008RU? Потом сделать переидексацию штатными средствами приложения ( ФК ЦЗ вер 3.22) или индексы подхватятся сами при перезагрузке приложения?
24 янв 12, 13:27    [11959733]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
Stella35
индексы подхватятся сами при перезагрузке приложения?
Идексы "подхватываются" во время запрооса, ничего перегружать не надо.
24 янв 12, 13:29    [11959752]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Glory
Member

Откуда:
Сообщений: 104751
Stella35
Glory, я Вас обожаю. Думаете получится для MSSQL 2008RU? Потом сделать переидексацию штатными средствами приложения ( ФК ЦЗ вер 3.22) или индексы подхватятся сами при перезагрузке приложения?

Какое отношение индексы сервера имеют к вашему приложению ?
24 янв 12, 13:31    [11959770]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Stella35
Member

Откуда:
Сообщений: 11
Я пока не на месте. Часа ч/з 2-3 попробую, потом отпишусь. Спасибо всем!
24 янв 12, 13:41    [11959899]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Stella35
Member

Откуда:
Сообщений: 11
На код
set identity_insert hls_hc.dbo.oms_SMO on;
insert into hls_hc.dbo.oms_SMO
select *
from old_hls_hc.dbo.oms_SMO
where old_hls_hc.dbo.oms_SMO.SMOID=27 or old_hls_hc.dbo.oms_SMO.SMOID=28;
set identity_insert hls_hc.dbo.oms_SMO off;

имеем сообщение
Сообщение 8101, уровень 16, состояние 1, строка 2
Значение столбца идентификаторов в таблице "hls_hc.dbo.oms_SMO" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в ON.

Как нужно перечислить столбцы SMOID, Q_NAME, FAM_RUK и т. д.?
24 янв 12, 15:57    [11961563]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Stella35,

set identity_insert hls_hc.dbo.oms_SMO on;
insert into hls_hc.dbo.oms_SMO(fieldname_1,fieldname_2,fieldname_3....)
select fieldname_1,fieldname_2,fieldname_3....
from old_hls_hc.dbo.oms_SMO
where old_hls_hc.dbo.oms_SMO.SMOID in (27,28 )
set identity_insert hls_hc.dbo.oms_SMO off;
24 янв 12, 16:00    [11961601]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
Stella35
Member

Откуда:
Сообщений: 11
denis2710, всё получилось. Хоро-шо!
24 янв 12, 16:40    [11962068]     Ответить | Цитировать Сообщить модератору
 Re: Испортили справочник Хотим восстановить эту таблицу из backup'а  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Stella35,
если бы не получилось,вот это был бы номер ...
24 янв 12, 16:44    [11962108]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить