特定の値をチェックし、エラーを返すか、更新ステートメントを続行するストアド プロシージャを作成しようとしています。私はprocを書いてみましたが、すべてが構文的に正しいようですが、特定の値をチェックするだけのようで、それが見つからない場合は、必要な更新をスキップするようです. 私の現在のコードは以下の通りです:
declare @newID varchar = 099393
declare @oldID varchar = 260260
Declare @pMsg varchar(255)
if exists (select * from req where dept_id=@oldID)
begin
SET @pMsg = 'The department ID ' + @oldID + ' cannot be changed at this time.'
return
end
Begin Try
Begin TRAN
update dbo.dept
set dept_id = @newID
where dept_id = @oldID
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
update dbo.dept
set dept_id = @oldID
where dept_id = @oldID
END CATCH
select dept_id=@newID
return