Первичный ключ представления SQL Server

есть ли способ дать представлению первичный ключ в sql server. Я знаю, что это возможно в Oracle.

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

3 ответов


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

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


индексированное представление-правильный выбор, но первичный ключ, как сказал RedFilter, на самом деле не required. Хотя есть много требований, которые вы будете вынуждены иметь, например, кластеризованный индекс.


внутри MS Access вы можете создать первичный ключ в связанном представлении, используя инструкцию SQL:

ALTER TABLE [TableName] ADD CONSTRAINT [PrimaryKeyName] PRIMARY KEY ([FieldName1, FieldName2, ...])

тем не менее, использование индексированного представления является лучшим решением.