web-dev-qa-db-fra.com

Comment mettre à jour une table à l'aide de procédures stockées dans SQL Server

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
3
user3096627

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
8
Maryam Arshi

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?

2
Talspaugh27

* 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. 

0
Bha15