我有一个名为'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