あなたはINSERT
でWHERE
を使用することはできません。新しい行を挿入するか、既存の行を更新するかのどちらかです。
CREATE PROC spIncreaseHours
(@ID int, @HoursPerWeek DEC, @HourlyRate INT)
AS
INSERT INTO Payments
Values (@ID, @HoursPerWeek, @HourlyRate);
またはUPDATE
:たとえばINSERT
のために当然のことながら
CREATE PROC spIncreaseHours
(@ID int, @HoursPerWeek DEC, @HourlyRate INT)
AS
UPDATE Payments
SET HoursPerWeek = @HoursPerWeek,
HourlyRate = @HourlyRate
WHERE ID = @ID;
、そこ@ID
の行が既に存在するかどうかわからない第三の可能性もあるので、あなたがチェックを行うことができます最初:
CREATE PROC spIncreaseHours
(@ID int, @HoursPerWeek DEC, @HourlyRate INT)
AS
IF EXISTS (SELECT ID FROM Payments WHERE ID = @ID)
UPDATE Payments
SET HoursPerWeek = @HoursPerWeek,
HourlyRate = @HourlyRate
WHERE ID = @ID;
ELSE
INSERT INTO Payments
Values (@ID, @HoursPerWeek, @HourlyRate);
これは何をする予定ですか? 'INSERT'で' WHERE'を使うことはできません – DavidG
与えられたIDの行にHoursPerWeekとHourlyRateを挿入します。 –
IDを挿入してください – DavidG