我有一個名爲'tasks'的表,其中'task id'
是identity列,對於那個表我必須寫保存存儲過程,其中當'task id'沒有給出時它應該插入值,當給出'任務ID'時,它應該更新表。使用標識列插入和更新的存儲過程
當任務ID是標識列時,這怎麼能實現任何人都可以用例子來解釋。 這裏是代碼
Alter PROCEDURE TaskSave
(
@taskid int,
@ProjectId int,
@EmployeeId int,
@TaskName nvarchar(50),
@Duration_Hrs int,
@StartDate nvarchar(20),
@FinishDate nvarchar(20),
@CreateUserId int,
@CreatedDate nvarchar(20),
@ModifiedUserID int,
@ModifiedDate nvarchar(20),
@Is_CommonTask bit
) AS
BEGIN
IF Exists(select null from TblTasks where [email protected])
BEGIN
INSERT TblTasks
VALUES (@ProjectId,@EmployeeId,@TaskName,@Duration_Hrs,
@StartDate,@FinishDate,@CreateUserId,@CreatedDate,
@ModifiedUserID,@ModifiedDate,@Is_CommonTask)
END
ELSE
BEGIN
UPDATE TblTasks SET
[email protected],[email protected],
[email protected]_Hrs
WHERE [email protected]
END
END
GO
你的問題是什麼?如果它只是測試'@ TaskID'變量,我建議將IF語句改爲'IF @TaskID = -1'(或其他一些值,它將用作「未給定」用戶的值。你想在插入後知道什麼是任務ID,然後使用'@@ IDENTITY'。如果你還想返回'@ TaskID',使參數OUTPUT – cha 2013-02-13 06:21:19