Запуск файла резервной копии SQL Server 2000 на SQL Server 2008

Запуск файла резервной копии SQL Server 2000 на SQL Server 2008

Я восстановил файл .bak сервера SQL Server 2000 на сервере SQL Server 2008 с помощью

--RESTORE FILELISTONLY
--FROM DISK = 'D:\DBHarshal\full backup august 6.BAK'
--ALTER DATABASE EPICSms
--SET SINGLE_USER WITH
--ROLLBACK IMMEDIATE

RESTORE DATABASE EPICSms
FROM DISK = 'D:\DBHarshal\full backup august 6.BAK'
WITH MOVE 'EPICSms_Data' TO 'C:\EPICSms_Data.mdf',
MOVE 'EPICSms_Log' TO 'C:\EPICSms_Log.mdf'


 ,REPLACE

Он попросил использовать основную базу данных, когда я ее использовал, я смог загрузить свою резервную копию, но теперь проблема в том, что я вижу только таблицы с данными, но не хранимую процедуру.

решение1

Экспортируйте и импортируйте хранимые процедуры. Помню, что раньше у меня были такие же проблемы, но, похоже, их исправили новые SQL-серверы.

Чтобы было проще работать, я бы подключил управление 2k8 к 2000 sql.

решение2

Если вам по-прежнему не удается восстановить резервную копию базы данных SQL Server 2000 в SQL Server 2008 И вы можете подключиться к базе данных SQL Server 2000, я рекомендую использовать «Мастер создания сценариев SQL Server», доступный в SQL Server 2008.

В вашей ситуации вы можете использовать этот инструмент следующим образом: (1) создать скрипт для всех объектов (таблиц, процедур, логинов, разрешений и т. д. — у вас есть возможность сделать это выборочно) и немедленно ЗАПУСТИТЬ. (2) создать скрипт для данных (ETL) как пакета SSIS.

Следующие шаги: (3) Откройте пакет данных SSIS. (4) Добавьте задачу(и) «Выполнить SQL» для завершения ПЕРЕД ETL, которая устанавливает все ограничения внешнего ключа на «WITH NOCHECK». (5) Добавьте задачу(и) «Выполнить SQL» для завершения ПОСЛЕ ETL, которая устанавливает все ограничения внешнего ключа на «WITH CHECK CHECK».

Из базы данных SQL Server 2008, созданной вами на шаге (1), код для генерации TSQL для шагов (4) и (5) выглядит следующим образом:

SELECT 
    'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + OBJECT_NAME(parent_object_id) + ']' + ' NOCHECK CONSTRAINT ' + OBJECT_NAME(OBJECT_ID) AS ddlNoCheck
    ,'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + OBJECT_NAME(parent_object_id) + ']' + ' WITH CHECK CHECK CONSTRAINT ' + OBJECT_NAME(OBJECT_ID) AS ddlWithCheckCheck
FROM
    sys.objects
WHERE
    type_desc = 'FOREIGN_KEY_CONSTRAINT'
ORDER BY
    SCHEMA_NAME(schema_id)
    , OBJECT_NAME(parent_object_id)
    , type_desc, OBJECT_NAME(OBJECT_ID)

Связанный контент