Ошибка первичного ключа

panda30
Дата: 12.02.2013 11:43:25
Здравствуйте. Создал большую БД в MSSQL Server 2012. Сделал одно тестовое представление... Добавляю в VS2012 БД через Entity Data Model. А у меня вот такая ошибка вылезает после добавления:

Error 6002: В таблице или представлении "C:\USERS\ALEXANDER\DESKTOP\STROYMAG\STROYMAG.MDF.dbo.Вот" не определен первичный ключ. Ключ был выведен, а определение таблицы или представления было создано в режиме только для чтения. C:\Users\Alexander\Desktop\StroyMag\StroyMag\StroyMag\Model1.edmx

Что это такое?
panda30
Дата: 12.02.2013 11:57:32
Зачем мне в представлении ключевое поле...в запросе..
AnaceH
Дата: 12.02.2013 12:11:30
panda30,

Добавьте ключевое поле во вью. Если все равно будет ругаться - coalesce(pk, константа)
PS В следующий раз подобные вопросы постите сюда
Glory
Дата: 12.02.2013 12:20:18
panda30
Зачем мне в представлении ключевое поле...в запросе..

Чтобы избежать "было создано в режиме только для чтения." ?
panda30
Дата: 12.02.2013 12:29:29
AnaceH, Я только начинаю учиться... Подскажите, а как добавить в представление ключевое поле? Имеется ввиду, из таблицы взять его? или как? Если первое, то я его взял...
И куда прописать надо coalesce(pk, константа)?:)
AnaceH
Дата: 12.02.2013 12:46:38
panda30,

Допустим код вашего вью что-то типа
create view dbo.ololo
as
select a.pk, a.name, a.description 
from dbo.MyTable as a

тогда вам надо переписать его как
create view dbo.ololo
as
select coalesce(a.pk, константа) as pk, a.name, a.description 
from dbo.MyTable a

насчет константы - я не знаю, какого типа у вас первичный ключ. Если инт - 0 (coalesce(a.pk, 0)), если uniqueidentifier - newid() (coalesce(a.pk, newid()))
panda30
Дата: 12.02.2013 12:54:05
AnaceH,
Вот делаю так:

SELECT        COALESCE (П.Первый, 0) AS Первый, Второй
FROM            dbo.Проба AS П


Автоматически переправляется на
SELECT        COALESCE (Первый, 0) AS Первый, Второй
FROM            dbo.Проба AS П


Потом все выводится, но в VS опять таже самая ошибка...