小编Kee*_*eks的帖子

将数据插入视图(SQL Server)

我有以下设置:

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)

为什么在尝试使用视图插入时身份列的自动增量不起作用,我该如何解决?

场景是:

数据库的不同用户应该只能在该表中使用自己的行.因此,我试图通过检查用户名将视图用作一种安全性.有没有更好的解决方案?

sql-server-2008

18
推荐指数
2
解决办法
13万
查看次数

标签 统计

sql-server-2008 ×1