У меня есть следующие настройки:
CREATE TABLE dbo.Licenses
(
Id int IDENTITY(1,1) PRIMARY KEY,
Name varchar(100),
RUser nvarchar(128) DEFAULT USER_NAME()
)
GO
CREATE VIEW dbo.rLicenses
AS
SELECT Name
FROM dbo.Licenses
WHERE RUser = USER_NAME()
GO
Когда я пытаюсь вставить данные, используя представление ...
INSERT INTO dbo.rLicenses VALUES ('test')
возникает ошибка:
Cannot insert the value NULL into column Id, table master.dbo.Licenses; column does not allow nulls. INSERT fails.
Почему автоматическое увеличение столбца идентификаторов не работает при попытке вставить с использованием представления и как я могу это исправить?
Сценарий:
Различные пользователибаза данных должна работать только со своими строками в этой таблице.Поэтому я пытаюсь использовать представление как своего рода защиту, проверяя имя пользователя. Есть ли лучшее решение?