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

Откуда:
Сообщений: 37
Здравствуйте.

Есть необходимость перенести БД, стоявшую на 2000 сервере.

Сделан полный бэкап, но при восстановлении БД на 2008 меняется схема таблиц: появляются префиксы перед именами таблиц.

Как исключить данный момент? Подскажите, пожалуйста.
22 май 12, 11:19    [12592878]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Восстанавливать в 2000 :))
22 май 12, 11:22    [12592917]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Улыбнуло ))

Может есть какой-нибудь способ отличный от предложенного? )
22 май 12, 11:33    [12593026]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
JustNoob
Улыбнуло ))

Может есть какой-нибудь способ отличный от предложенного? )

А что Вас не устраивает то ? Просто интересно...
22 май 12, 11:37    [12593068]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
В 2000 таблицы идут без префиксов, а в 2008 он создает префиксы dbo для одних таблиц и Money для других.

Клиентское приложение стоит на очень многих машинах, поэтому нужно, чтобы миграция прошла для пользователей незаметно, а из-за префиксов вываливаются ошибки, т.к. приложение не может найти таблицу, которая в 2000 была без префикса.

Может есть какая-то возможность сбросить схему базы данных?
22 май 12, 11:43    [12593145]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Либо как-то поменять префикс Money на dbo, потому что таблицы с префиксом dbo воспринимаются клиентом нормально..
22 май 12, 11:45    [12593165]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
JustNoob
Либо как-то поменять префикс Money на dbo, потому что таблицы с префиксом dbo воспринимаются клиентом нормально..


Это не префикс, это схема. Схем, если не ошибаюсь, не было в 2000.
22 май 12, 11:46    [12593174]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ozerov
JustNoob
Либо как-то поменять префикс Money на dbo, потому что таблицы с префиксом dbo воспринимаются клиентом нормально..


Это не префикс, это схема. Схем, если не ошибаюсь, не было в 2000.
Схем не было. Но были владельцы.
22 май 12, 11:50    [12593225]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Нужно с 2000 перетащить владельца?
Если мыслю правильно, то как это сделать? )
22 май 12, 11:52    [12593239]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
У меня недавно нормально прошел перенос базы с 2000 на 2008 - все таблицы создались в dbo, как и полагается.
А что вообще такое money, откуда возникает такая схема? В 2000, кажется, были вместо схем владельцы таблиц - может, у Вас эти таблицы "принадлежат" другому пользователю?
Я бы сравнил свойства таблиц, попадющих в схемы dbo и money, разобрался бы, чем они отличаются и постарался бы устранить различия.
22 май 12, 11:54    [12593261]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
На сервере с 2000 действительно есть пользователь Money, через него и происходит соединение с клиентов.

Как быть в такой ситуации?
22 май 12, 12:00    [12593311]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Еще можно, конечно, уже в новой базе пройтись курсором по таблицам с неправильной схемой и сделать им
 alter schema  dbo transfer [money].[имя таблицы]
.
22 май 12, 12:02    [12593330]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
И еще, полезно использовать, перед такими действиями SQL Server 2008 Upgrade Advisor

Кстати, почему не 2008 R2 ?
22 май 12, 12:05    [12593355]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
А создать пользователя Money не поможет?
22 май 12, 12:06    [12593371]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Ozerov
И еще, полезно использовать, перед такими действиями SQL Server 2008 Upgrade Advisor

Кстати, почему не 2008 R2 ?


Извините, именно он и стоит.
22 май 12, 12:06    [12593381]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Незнайка2012
Guest
JustNoob
А создать пользователя Money не поможет?

Интересный вопрос. В 2000 был владелец он же пользователь. В 2008 таблицы принадлежат схемам. Ассоциируются ли пользователь и схема?
22 май 12, 12:34    [12593627]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Незнайка2012
Guest
Незнайка2012
JustNoob
А создать пользователя Money не поможет?

Интересный вопрос. В 2000 был владелец он же пользователь. В 2008 таблицы принадлежат схемам. Ассоциируются ли пользователь и схема?

Пользователь может стать владельцем схемы. А при необходимости удаления пользователя можно назначить нового владельца и удалить пользователя.
В какой последовательности 2000 и 2008 сервера ищут объект если не указан владелец или схема.
22 май 12, 12:47    [12593744]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Незнайка2012
Guest
В какой последовательности 2000 и 2008 сервера ищут объект если не указан владелец или схема?
22 май 12, 12:49    [12593761]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5758
Кот Матроскин
Еще можно, конечно, уже в новой базе пройтись курсором по таблицам с неправильной схемой и сделать им
 alter schema  dbo transfer [money].[имя таблицы]
.


можно без курсоров

select 'ALTER SCHEMA dbo TRANSFER ['+schema_name(schema_id)+'].['+name+']'
from sys.objects 
where 
    is_ms_shipped=0 and 
    schema_name(schema_id)<>'dbo'
22 май 12, 12:51    [12593775]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
JustNoob
Member

Откуда:
Сообщений: 37
После выполнения
автор
alter schema dbo transfer [money].[имя таблицы]

клиент выдает, что таблица такая-то уже существует в БД...
22 май 12, 12:53    [12593787]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Незнайка2012
Guest
JustNoob
Нужно с 2000 перетащить владельца?
Если мыслю правильно, то как это сделать? )

А если создать пользователя Money и назначить владельцем схемы Money.
22 май 12, 13:00    [12593867]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД из MS SQL 2000 в MS SQL 2008  [new]
Незнайка2012
Guest
Незнайка2012
В какой последовательности 2000 и 2008 сервера ищут объект если не указан владелец или схема?

Ищется таблица с владельцем или схемой по умолчанию для пользователя, если не находится, то владельцем таблицы или схемы которых является данный пользователь, если не находит, то таблица не найдена, т.е. больше не ищет, даже если и есть таблицы с таким именем.
Я правильно понял?
22 май 12, 13:42    [12594294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить