Comment puis-je créer un triggersur dans SQL Server sur insertion?

Je veux créer un triggersur dans SQL Server 2012 qui s'active lorsque j'insère une ligne dans une table spécifique.

Le triggersur doit insert une valeur dans une colonne spécifique, dans la même table et la ligne dans laquelle j'insère la nouvelle ligne.

Le triggersur ne doit être activé que si une colonne spécifique de la ligne que j'insère n'a pas de valeur. nul.

Disons que j'insère dans:

  • Table: car
  • Colonnes: car_make | car_price | car_img car_make | car_price | car_img

Si je fournis toutes les valeurs dans l'insertion:

 car_make | car_price | car_img 

le triggersur ne doit pas s'activer

Mais, si j'insère seulement des valeurs pour 2 colonnes:

 car_make | car_price 

la valeur car_img est null, alors sortinggger doit s'activer et effectuer les opérations suivantes:

  • Insérer une valeur prédéfinie dans la colonne car_img de la même ligne affectée

PS. Je dois utiliser un triggersur, c'est pour une affectation. Je ne peux pas utiliser une valeur par défaut.

 Create Trigger tr_ForInserts_car ON dbo.car FOR INSERT AS BEGIN SET NOCOUNT ON; UPDATE Car SET car_make = /*Your Default Value*/ WHERE car_make IS NULL UPDATE Car SET car_price = /*Your Default Value*/ WHERE car_price IS NULL UPDATE Car SET car_img = /*Your Default Value*/ WHERE car_img IS NULL END 

modifier

Ma suggestion précédente mettra à jour toutes les lignes où la colonne correspondante est nulle, pour mettre à jour seulement la colonne pour les lignes nouvellement insérées, essayez la suivante s'il vous plaît

 Create Trigger tr_ForInserts_car ON dbo.car FOR INSERT AS BEGIN SET NOCOUNT ON; UPDATE Car SET Car.car_make = /*Your Default Value*/ FROM Car INNER JOIN inserted ON Car.PrimaryKey = inserted.PrimaryKey WHERE Car.car_make IS NULL UPDATE Car SET Car.car_price = /*Your Default Value*/ FROM Car INNER JOIN inserted ON Car.PrimaryKey = inserted.PrimaryKey WHERE Car.car_price IS NULL UPDATE Car SET Car.car_img = /*Your Default Value*/ FROM Car INNER JOIN inserted ON Car.PrimaryKey = inserted.PrimaryKey WHERE Car.car_img IS NULL END