tôi đã thiết lập sau:Chèn dữ liệu vào một cái nhìn (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
Khi tôi cố gắng để chèn dữ liệu sử dụng giao diện ...
INSERT INTO dbo.rLicenses VALUES ('test')
một lỗi phát sinh:
Cannot insert the value NULL into column Id, table master.dbo.Licenses; column does not allow nulls. INSERT fails.
Tại sao tăng tự động của cột nhận dạng không hoạt động khi cố gắng chèn bằng chế độ xem và cách khắc phục?
Kịch bản là:
Người sử dụng khác nhau của cơ sở dữ liệu chỉ có thể làm việc với hàng riêng của họ trong bảng đó. Vì vậy, tôi đang cố gắng sử dụng chế độ xem như một loại bảo mật bằng cách kiểm tra tên người dùng. Có giải pháp nào tốt hơn không?
Tại sao bạn không trực tiếp chèn vào bảng đó? Tôi không bao giờ chèn vào quan điểm bởi vì họ có quy tắc quirly kỳ quặc và có nhiều đau hơn là chèn trực tiếp. – HLGEM
Những người dùng khác nhau của cơ sở dữ liệu chỉ có thể làm việc với các hàng của riêng họ trong bảng đó. Vì vậy, tôi đang cố gắng sử dụng chế độ xem như một loại bảo mật bằng cách kiểm tra tên người dùng. Có giải pháp nào tốt hơn không? – Keeks
@Keeks; mã của bạn chạy tốt trên SQL Server 2014 và SQL Server 2016 ctp 2.3 –