2013-06-12 5 views
-1

Comment définir une valeur de colonne null si l'utilisateur ne sélectionne pas la valeur ou définir la nouvelle valeur lorsque l'utilisateur sélectionner la valeurvaleur nulls mise à jour dans le serveur SQL

create procedure update2 
@SSN int, 
@Employee_FirstName varchar(50), 
@Employee_lastName varchar(50), 
@gender_ID int, 
@Department_ID int, 
@location_ID int, 
@salary decimal(18, 3) 

as 

Update Employee set Employee_FirstName= @Employee_FirstName, 
[email protected]_lastName,[email protected]_ID,Department_ID = @Department_ID, 
[email protected]_ID or location_ID is null , [email protected] 
where SSN = @SSN 
+0

Pouvez-vous reformuler la question? –

Répondre

0

Vous pouvez déclarer @location_ID comme nulle

CREATE PROCEDURE update2 
@SSN INT , 
@Employee_FirstName VARCHAR(50) , 
@Employee_lastName VARCHAR(50) , 
@gender_ID INT , 
@Department_ID INT , 
@location_ID INT = NULL , 
@salary DECIMAL(18, 3) 

AS 

UPDATE Employee 
SET  Employee_FirstName = @Employee_FirstName , 
     Employee_lastName = @Employee_lastName , 
     gender = @gender_ID , 
     Department_ID = @Department_ID , 
     location_ID = @location_ID , 
     salary = @salary 
WHERE SSN = @SSN 
+0

J'ai fait ces réponses mais j'ai encore des problèmes pour l'erreur msg L'instruction UPDATE était en conflit avec la contrainte FOREIGN KEY "FK_Emp_DB_Location". Le conflit s'est produit dans la base de données "test", la table "dbo.Location", la colonne "ID". La déclaration a été terminée –

0

Essayez celui-ci, si je comprends bien votre question -

CREATE PROCEDURE dbo.update2 

    @SSN INT, 
    @Employee_FirstName VARCHAR(50), 
    @Employee_lastName VARCHAR(50), 
    @gender_ID INT, 
    @Department_ID INT, 
    @location_ID INT, 
    @salary DECIMAL(18, 3) 

AS BEGIN 

    UPDATE dbo.Employee 
    SET 
      Employee_FirstName = @Employee_FirstName 
     , Employee_lastName = @Employee_lastName 
     , gender = @gender_ID 
     , Department_ID = @Department_ID 
     , location_ID = ISNULL(location_ID, @location_ID) --<-- ?? 
     , salary = @salary 
    WHERE SSN = @SSN 

END 
+0

J'ai cette réponse –

0

@location_ID INT = NULL - NULL spécifier comme celui-ci où vous avez besoin

Mais vous devez supprimer toutes les relations (clé étrangère) avec cette colonne particulière sinon vous aurez un conflit erreur se produit au moment de updation

Merci Arun Antony

Questions connexes