使用存储过程从子表中更改父表中的数据?

时间:2019-08-06 22:00:40

标签: sql sql-server

我正在尝试编写一个使用4个表的应用程序,其中一个表依赖于其他3个表。我的目标是能够使用父表中的存储过程来更改子表中的数据,但是问题在于,在子表中,我只有外键引用父表中的标识列,而我不知道如何引用父表中的任何其他列。

CREATE TABLE Pogon(
PogonID int IDENTITY (1,1) PRIMARY KEY,
NazivGoriva nvarchar (10) NOT NULL)

CREATE TABLE MarkeAutomobila(
MarkaID int IDENTITY (1,1) PRIMARY KEY,
NazivMarke nvarchar (50) NOT NULL,
Pogon int FOREIGN KEY REFERENCES Pogon (PogonID) NOT NULL)

CREATE TABLE Vlasnik(
VlasnikID int IDENTITY (1,1) PRIMARY KEY,
Ime nvarchar (30) NOT NULL,
Prezime nvarchar (30) NOT NULL,
GodinaRodjenja int NOT NULL)

CREATE TABLE Automobili(
AutomobilID int IDENTITY (1,1) PRIMARY KEY,
NazivMarke int FOREIGN KEY REFERENCES MarkeAutomobila (MarkaID) NOT NULL,
VlasnikAutomobila int FOREIGN KEY REFERENCES Vlasnik (VlasnikID),
Pogon int FOREIGN KEY REFERENCES Pogon (PogonID) NOT NULL,
RegistracioniBroj nvarchar (12) NOT NULL)


CREATE PROC PromeniAutomobi
(
@AutomobilID
@Ime
@Prezime
@GodinaRodjenja
@NazivMarke
@NazivPogona
@RegistracioniBroj
)
AS
UPDATE Automobili
SET // I don't know what should i put here//
FROM Automobili AS a
INNER JOIN Vlasnik AS v
ON a.VlasnikAutomobila = v.VlasnikID
INNER JOIN MarkeAutomobila AS m
ON a.NazivMarke = m.MarkaID
INNER JOIN Pogon AS p
ON a.Pogon=p.PogonID

在应用程序中,我希望能够使用存储过程从一个窗口添加或更改现有的“ Automobil”,而且还希望更改例如“ MarkeAutomobila”

0 个答案:

没有答案