我有以下设置:
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
Run Code Online (Sandbox Code Playgroud)
当我尝试使用视图插入数据时...
INSERT INTO dbo.rLicenses VALUES ('test')
Run Code Online (Sandbox Code Playgroud)
出现错误:
Cannot insert the value NULL into column Id, table master.dbo.Licenses; column does not allow nulls. INSERT fails.
Run Code Online (Sandbox Code Playgroud)
为什么在尝试使用视图插入时身份列的自动增量不起作用,我该如何解决?
场景是:
数据库的不同用户应该只能在该表中使用自己的行.因此,我试图通过检查用户名将视图用作一种安全性.有没有更好的解决方案?