
Я восстановил файл .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)