Обновление IINFORMATION_SCHEMA.KEY_COLUMN_USAGE Sql CE

Как вы убедитесь, что INFORMATION_SCHEMA.KEY_COLUMN_USAGE обновляется после добавления / создания нового индекса. то есть:

CREATE UNIQUE INDEX [UK_Common.UserConnection]
   ON [Common.UserConnection] ([SessionId] ASC,[UserId] ASC);
GO

У меня есть базы данных, одна из которых преобразуется / обновляется из старой версии (V1) в новую версию (V10), другая является новой новой (V10) базой данных. Когда я сравниваю базы данных, все совпадает (включая PK, FK, Indexes и т. Д.), Кроме:

INFORMATION_SCHEMA.KEY_COLUMN_USAGE

Я вижу, что мой недавно созданный индекс uniq ([UK_Common.UserConnection] SessionId и UserId) отсутствует в преобразованной базе данных. Преобразованная база данных считает меньше строк в таблице "key_column_usage" по сравнению с новой базой данных (V10).

Если я извлекаю "Создать скрипт таблицы SQL" из любого клиентского приложения SQL, сценарий для преобразованного / обновленного и нового (V10) сценария идентичен.

Я попытался включить вставку в утверждение в преобразователе:

    INSERT INTO [INFORMATION_SCHEMA.KEY_COLUMN_USAGE]
            (COL0,COL1,COL2,COL3)
    VALUES ('value0','value1','value2',value3)

    GO

Результат: данные не могут быть добавлены в системную таблицу или представление информации о схеме. [Имя таблицы только для чтения = @@INFORMATION_SCHEMA.KEY_COLUMN_USAGE ]

Я также попытался закодировать этот inn.net, где находится запрос на выбор (гниль, чтобы подсчитать ошибку ключа).

("SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE")

Результат: данные не могут быть добавлены в системную таблицу или представление информации о схеме. [Имя таблицы только для чтения = @@INFORMATION_SCHEMA.KEY_COLUMN_USAGE ]

Вопрос связан с ошибочным модульным тестом (mstest) в проекте asp.net: сбой Assert.IsTrue. Количество использования ключевых столбцов отличается.

Как вы обновите: INFORMATION_SCHEMA.KEY_COLUMN_USAGE после редактирования / изменения INDEX?

.NET 4.0 SQL CE 4.0 VS2010

1 ответ

Вы не можете обновить эту таблицу (представление), она будет обновлена ​​экземпляром ms sql на основе использования ключа. Обычно не очень хорошая идея модифицировать информационную схему непосредственно в любой из РСУБД. В большинстве случаев пользователи не имеют права делать это в любом случае.

Изменить: я не думаю, что различия в information_schema следует использовать в качестве критерия исключения в тестировании.

Другие вопросы по тегам