2015-01-19 4 views
2

После миграции Azure в базу данных для V12 предварительного просмотра с использованием SqlPackage.exe для экспорта и импорта БД на локальной машине я получаю ошибку:SqlPackage.exe экспорт/импорт базы данных

Error SQL72014: .Net SqlClient Data Provider: Msg 2760, Level 16, State 1, Line 1 

The specified schema name "sys" either does not exist or you do not have permission to use it. 


Error SQL72045: Script execution error. The executed script: 
CREATE TYPE [sys].[script_deployment_databases] AS TABLE (
    [logical_server] [sysname] NOT NULL, 
    [database_name] [sysname] NOT NULL, 
    UNIQUE NONCLUSTERED ([database_name] ASC, [logical_server] ASC)); 

Infact есть Пользовательский тип таблицы, смотрящий в Management Studio, который нельзя удалить.

Как решить?

Я попытался экспортировать все варианты, используя this script.

ответ

1

Другие люди столкнулись с этой проблемой в последнее время: (link).

Проблема была в том, что миграция Microsoft некоторых баз данных случайно создала «ошибочный объект» sys.script_deployment_databases: определение типа таблицы, которое использует схему sys, но помечено метаданными . Тот факт, что он «определен пользователем», заставляет bacpacs содержать его. Попытки восстановить bacpac терпят неудачу, потому что он пытается создать его в sys.

Microsoft недавно обновила свои инструменты DacFx и SSDT (а также портал Azure), чтобы, по-видимому, игнорировать этот ошибочный объект при экспорте/импорте bacpacs.

Относительно примечания: Развертывание dacpacs для обновления такой поврежденной базы данных имеет аналогичную проблему, где при попытке развертывания она пытается сбросить и воссоздать все «пользовательские типы таблиц» и сбой, поскольку script_deployment_databases находится под управлением sys. Однако в настоящее время инструментарий еще не исправлен для dacpac.

Один из методов удаления объекта script_deployment_databases - это скопировать базу данных напрямую с помощью CREATE DATABASE [X] AS COPY OF [Y], а затем переименовать их, чтобы копия заменила оригинал. Объект, очевидно, опускается из копий.

0

Решение состоит в том, чтобы установить обновление для платформы приложений Microsoft SQL Server Data-Tier. Он может быть найден here

Нить и ответ от Microsoft можно найти на следующем link

Вот ответ от Raul Garcia - MS:

Update (as of 2015-March-2):

The fixes for exporting and importing bacpacs from a V12-upgraded Azure SQL Database server have been deployed. You should be able to export/import successfully through the Azure portal, and you can install this updated version of DacFx to export/import through SSMS, SSDT, SqlPackage.exe, or the DacFx API.

http://www.microsoft.com/en-us/download/details.aspx?id=45886

(Note: You must install BOTH the x64 and x86 versions of the MSIs if you are on an x64 machine.)

Thank you for your patience. -Raul Garcia

Смежные вопросы