sql-server-2008 – 将数据插入视图(SQL Server)

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 将数据插入视图(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.

为什么尝试使用视图插入标识列的自动增量时,如何解决

情况是:

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

解决方法

命名列如何?
INSERT INTO dbo.rLicenses (name) VALUES ('test')

这是多年以来,我尝试通过视图更新,所以YMMV作为HLGEM提到.

我会考虑一个“INSTEAD OF” trigger的视图,允许一个简单的INSERT dbo.Licenses(即表)在触发器中

原文链接:https://www.f2er.com/mssql/81320.html

猜你在找的MsSQL相关文章