Обновление 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 следует использовать в качестве критерия исключения в тестировании.