J'ai créé une table dans SQL Server appelée "Employé" et je souhaite maintenant la mettre à jour à l'aide d'une procédure stockée.
La table contient les colonnes emp_name
, emp_code
et status
. Supposons que la table comporte trois enregistrements: initialement, dans la procédure stockée, je souhaite extraire les deux derniers enregistrements à l'aide d'une instruction select, puis les enregistrements récupérés 'status
à' Y '.
J'ai écrit une procédure stockée, mais cela n'affecte pas la table d'origine. Veuillez suggérer la requête pour la procédure stockée.
Voici la requête que j'ai faite:
create procedure updtdemployee As
select e.Emp_name ,e.Circle
from employee e
where e.Emp_Code ='2501' or e.Emp_Code='2502'
begin
update employee set status='Y' where Emp_name = employee.Emp_name
end
Vous n'avez pas besoin de la partie Select, faites simplement la mise à jour.
CREATE PROCEDURE updtdemployee
@employeeID INT
AS
BEGIN
UPDATE employee
SET status='Y'
WHERE Emp_Code = @employeeID
END
Si vous voulez le faire en statique, vous pouvez utiliser ceci
CREATE PROCEDURE updtdemployee
AS
BEGIN
UPDATE employee
SET status='Y'
WHERE Emp_Code = 2501 or Emp_Code = 2502
END
selon votre question "Je veux récupérer les deux derniers enregistrements" s'il est censé affecter UNIQUEMENT les 2 derniers enregistrements,
CREATE PROCEDURE updtdemployee
AS
BEGIN
UPDATE employee
SET status='Y'
WHERE Emp_Code in (select top 2 Emp_Code from employee order by Emp_Code desc)
END
Je ne peux que deviner de quelle façon vous souhaitez commander, mais est-ce ce que vous recherchiez?
* Essayez ci-dessous le code
Create Procedure UpdateRecord (@emp_code int)
as
begin
update employee set status= 'Y'
where emp_code=@emp_code
end
* exécuter comme ci-dessous
exec UpdateRecode 3
3 est votre emp_code. s'il vous plaît changer en tant que votre exigence.