Я работаю над перемещением хранимых процедур из локальной базы данных SQL Server в хранилище данных SQL Azure (ASDW). На протяжении всего процесса мне приходилось работать с несколькими отсутствующими функциями — отнимало много времени, но не невозможно. Одна вещь, которую мне пришлось сделать, это заменить CTE, за которыми следуют операторы MERGE, временными таблицами, за которыми следуют операторы UPDATE/INSERT/DELETE (поскольку за CTE не могут следовать эти операторы). В начале каждого SP я проверяю временные таблицы и удаляю их, если они существуют.
Сегодня я создал еще одну хранимую процедуру в ASDW без каких-либо временных таблиц (без обновлений/вставок/удалений, поэтому я оставил там CTE), она «скомпилировалась», и я смог запустить ее без проблем (вернул пустой набор результатов , так как данных пока нет). После этого я создал еще один SP, и когда я пошел на его выполнение, я получил следующую ошибку:
... Не найдена запись каталога для идентификатора раздела (id) в базе данных 26. Метаданные несовместимы. Запустите DBCC CHECKDB, чтобы проверить наличие повреждения метаданных...
Затем я вернулся к первому SP, который я упомянул, и он выдал ту же ошибку, хотя раньше он работал без ошибок.
Я попытался запустить DBCC CHECKDB в соответствии с инструкциями, но, увы, он не поддерживается/не работает.
Я много копался, и в итоге я увеличил свою базу данных со 100 DWU до 500 DWU. У меня 0,16% от предельного размера хранилища моей базы данных, и данных почти нигде нет (общий размер БД составляет ‹300 МБ).
Есть ли этому объяснение? Если нет, я не могу с чистой совестью использовать эту платформу в производственной среде.
Полная ошибка:
Msg 110802, Level 16, State 1, Line 1
110802;An internal DMS error occurred that caused this operation to fail.
Details: Exception: Microsoft.SqlServer.DataWarehouse.DataMovement.Workers.DmsSqlNativeException,
Message: SqlNativeBufferReader.Run, error in OdbcExecuteQuery: SqlState:
42000, NativeError: 608, 'Error calling: SQLExecDirect(this->GetHstmt(), (SQLWCHAR *)statementText, SQL_NTS), SQL return code: -1 | SQL Error Info:
SrvrMsgState: 1, SrvrSeverity: 16, Error <1>: ErrorMsg: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]No catalog entry found for partition ID
72057594047758336 in database 36. The metadata is inconsistent. Run DBCC
CHECKDB to check for a metadata corruption. | Error calling: pReadConn-
>ExecuteQuery(statementText, bufferFormat) | state: FFFF, number: 134148,
active connections: 100', Connection String: Driver={pdwodbc};APP=TypeC01-
DmsNativeReader:DB196\mpdwsvc (2504)- ODBC;Trusted_Connection=yes;AutoTranslate=no;Server=\\.\pipe\DB.196-
bb5f9dd884cf\sql\query