В: Я создал представление, состоящее из нескольких таблиц с первичными ключами. Я использую GridView в ASP.NET для ОБНОВЛЕНИЯ и УДАЛЕНИЯ строки в базе данных. Эта строка состоит из двух разных таблиц. Как мне ОБНОВИТЬ и УДАЛИТЬ его с помощью GridView в ASP.NET? Мне трудно понять, потому что при каждой попытке SQL Server говорит: «Невозможно обновить представление, потому что он обращается к нескольким таблицам».
Оказывается, вы не можете автоматически генерировать операторы UPDATE и DELETE в «Выборе источника данных» GridView, когда VIEW состоит из нескольких таблиц.
Пожалуйста, помогите мне, ребята :(
CREATE VIEW [dbo].[viewProcedureWithPrice]
AS
SELECT dbo.[PROCEDURE].ProcedureID, dbo.[PROCEDURE].Name, dbo.[PROCEDURE].Type, dbo.[PROCEDURE].Status, dbo.PRICE_HISTORY.Price,
dbo.PRICE_HISTORY.EffectivityDate
FROM dbo.[PROCEDURE] INNER JOIN
dbo.PRICE_HISTORY ON dbo.[PROCEDURE].ProcedureID = dbo.PRICE_HISTORY.ProcedureID
GO
CREATE TABLE [dbo].[PROCEDURE](
[ProcedureID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NULL,
[Type] [varchar](100) NULL,
[Status] [varchar](20) NULL,
CONSTRAINT [PK_PROCEDURE] PRIMARY KEY CLUSTERED
(
[ProcedureID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[PRICE_HISTORY](
[HistoryID] [int] IDENTITY(1,1) NOT NULL,
[ProcedureID] [int] NULL,
[Price] [decimal](10, 2) NULL,
[EffectivityDate] [date] NULL,
CONSTRAINT [PK_PRICE_HISTORY] PRIMARY KEY CLUSTERED
(
[HistoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PRICE_HISTORY] WITH CHECK ADD CONSTRAINT [FK_PRICE_HISTORY_PROCEDURE] FOREIGN KEY([ProcedureID])
REFERENCES [dbo].[PROCEDURE] ([ProcedureID])
GO
ALTER TABLE [dbo].[PRICE_HISTORY] CHECK CONSTRAINT [FK_PRICE_HISTORY_PROCEDURE]
GO