Временная метка SSMA.Для чего он нужен, как его используют?

StackOverflow https://stackoverflow.com/questions/1756581

Вопрос

Недавно я использовал помощник по миграции SQL Server для импорта базы данных в SQL Server 2005.Я заметил, что в ряд импортированных таблиц добавлен новый столбец SSMA_timestamp.

Кто-нибудь может сказать мне, для чего это нужно и как это будет использоваться?

Это было полезно?

Решение

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

Если вы не продолжаете использовать Access в качестве внешнего интерфейса к этой конкретной базе данных, которую вы перенесли на SQL Server (в этом случае см. ответ Саймона), я не думаю, что они будут использоваться для чего-либо после завершения миграции, поэтому так и должно быть. безопасно удалить эти новые столбцы, как только вы будете уверены, что все сделано.

Другие советы

Добавленные столбцы SSMA_timestamp используются не только во время миграции.На самом деле они помогают избежать ошибок, когда Access обновляет записи в таблицах, связанных с SQL Server.Поэтому, если вы все еще используете внешний интерфейс Access, связанный с перенесенной базой данных SQL Server, лучше не удалять столбцы SSMA_timestamp.

Из статьи MSDN Оптимизация приложений Microsoft Office Access, связанных с SQL Server:

Поддержка проверок параллелизма

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

Существует несколько типов данных, для которых Office Access не может надежно проверить соответствие значений.К ним относятся типы больших объектов, такие как текст, ntext, изображение, а также типы varchar(max), nvarchar(max) и varbinary(max), представленные в SQL Server 2005.Кроме того, числовые типы с плавающей запятой, такие как вещественные и плавающие, подвержены проблемам округления, которые могут сделать сравнение неточным, что приводит к отмене обновлений, когда значения фактически не изменились.В Office Access также возникают проблемы с обновлением таблиц, содержащих битовые столбцы, которые не имеют значения по умолчанию и содержат нулевые значения.

Быстрый и простой способ решить эти проблемы — добавить столбец метки времени в таблицу SQL Server.Данные в столбце метки времени совершенно не связаны с датой или временем.Вместо этого это двоичное значение, которое гарантированно уникально во всей базе данных и автоматически увеличивается каждый раз, когда новое значение присваивается какому-либо столбцу таблицы.Стандартный термин ANSI для этого типа столбца — версия строки.Этот термин поддерживается в SQL Server.

Office Access автоматически определяет, содержит ли таблица столбец этого типа, и использует его в предложении WHERE всех операторов UPDATE и DELETE, влияющих на эту таблицу.Это более эффективно, чем проверка того, что все остальные столбцы имеют те же значения, которые были при последнем обновлении динамического набора.

Помощник по миграции SQL Server для Office Access автоматически добавляет столбец с именем SSMA_TimeStamp во все таблицы, содержащие типы данных, которые могут повлиять на возможность обновления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top