我有以下设置:中插入数据视图(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
当我尝试使用该视图中插入数据...
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.
为什么使用视图尝试插入时身份列的自动增量不起作用,我该如何解决?
的情况是:
数据库的不同用户应该只能够在该表自己的行工作。因此,我试图通过检查用户名来将视图用作一种安全性。有没有更好的解决方案?
为什么不直接插入该表中?我从不插入视图,因为他们的规则更加奇特,而且比直接插入更加痛苦。 – HLGEM 2010-11-16 18:38:25
数据库的不同用户应该只能在该表中使用自己的行。因此,我试图通过检查用户名来将视图用作一种安全性。有没有更好的解决方案? – Keeks 2010-11-16 18:45:26
@Keeks;你的代码在SQL Server 2014和SQL Server 2016上运行良好ctp 2.3 – 2015-10-21 13:01:56