J'ai créé une table dans SQL Server appelée "Employee", et maintenant je veux mettre à jour la table en utilisant une procédure stockée.
La table contient des colonnes emp_name
, emp_code
et status
. Supposons que la table a trois loggings: initialement, dans la procédure stockée, je veux extraire les deux derniers loggings en utilisant une instruction select et j'ai le status
des loggings récupérés à '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 Sélectionner, 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 statique, vous pouvez l'utiliser
CREATE PROCEDURE updtdemployee AS BEGIN UPDATE employee SET status='Y' WHERE Emp_Code = 2501 or Emp_Code = 2502 END
en fonction de votre question "Je veux aller chercher les deux derniers disques" si cela est supposé affecter les deux derniers disques,
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 devine simplement sur la façon dont vous voulez order ceci mais est ce que vous cherchiez?
* Essayez le code ci-dessous
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 condition.