Insérer des données depuis une procédure stockée SQL Server

Exemple complet de scripts pour insérer des données depuis une procédure stockée SQL Server.

Exemple de procédure stockée pour insérer des données dans une table SQL Server. Et aussi comment afficher ou masquer le nombre de lignes insérées par la procédure. Cet exemple de procédure T-SQL insère des lignes dans une table de clients.

1. Insérer des lignes depuis une procédure stockée SQL Server

Voici un tutoriel en 3 étapes pour apprendre é insérer des lignes depuis une procédure stockée avec des variables.

1.1 Créer la table des ventes

Tout d’abord, vérifier au préalable que la table d’exemple n’existe pas. Si la table existe, alors la supprimer avec la commande DROP TABLE. Ensuite créer la table des clients pour insérer les lignes de l’exemple.

IF EXISTS ( 
	SELECT 1 FROM sys.objects 
	WHERE  object_id = object_id(N'[dbo].[CLIENTS]') 
		  AND type in (N'U') 
)
DROP TABLE [dbo].[CLIENTS];

CREATE TABLE [dbo].[CLIENTS] (
  [NOCLIENT] int IDENTITY(1,1),
  [NOM]	nvarchar(20),
  [VILLE] nvarchar(20)
);

GO

1.2 Exemple de procédure stockée SQL pour insérer des données

Commencer par vérifier si la procédure stockée existe déjà dans la base et la supprimer si nécessaire. Dans un deuxième temps créer la procédure stockée uspInsertClient pour insérer dans la table des clients deux champs passés en paramètres, le nom et la ville.

IF EXISTS(	SELECT 1 FROM sys.objects 
      WHERE object_id = object_id(N'uspInsertClient') AND type in (N'P') )
DROP PROCEDURE uspInsertClient;
GO

CREATE PROCEDURE uspInsertClient
  @Nom	nvarchar(20),
  @Ville	nvarchar(20)
AS
BEGIN
  INSERT INTO dbo.CLIENTS (NOM, VILLE) 
  VALUES (@Nom, @Ville);
END

GO

Exécuter la procédure trois fois pour insérer des nouveaux clients dans la table.

-- Insérer trois nouveaux clients
SET NOCOUNT OFF;
EXECUTE uspInsertClient	@Nom = 'MAMMADOU', @Ville = 'Toulouse';
EXECUTE uspInsertClient	@Nom = 'KARIM',	@Ville = 'Nantes';
EXECUTE uspInsertClient	@Nom = 'ISAAC',	@Ville = 'Versailles';
Insérer des données depuis une procédure stockée SQL Server
Insérer des données depuis une procédure stockée SQL Server

Cet exemple de requête insert dans la procédure stockée SQL Server permet d’insérer des lignes dans une table. Le code vérifie au préalable l’existence de la procédure pour éviter les erreurs à la création. Le code permet d’appeler facilement la procédure créée avec les paramètres. Et donc de standardiser l’insertion des données dans cette table.

2. Masquer l’affichage du nombre de lignes insérées

A chaque insertion de données avec du code T-SQL, par défaut, le système affiche le nombre de lignes insérées. La commande SET NOCOUNT ON indique à SQL Server de ne pas afficher le nombre de lignes affectées. Dans notre cas, insérées par la requête SQL INSERT. Ainsi, si l’option est activée, le nombre de ligne n’est pas remonté, comme dans l’exemple ci-dessous.

Cette option d’affichage permet de ne pas polluer les fichiers ou les tables de logs pendant l’exécution de procédures stockées complexes.

-- Insérer trois clients avec l'option activée
SET NOCOUNT ON;
EXECUTE uspInsertClient	@Nom = 'MAMMADOU',	@Ville = 'Toulouse';
EXECUTE uspInsertClient	@Nom = 'KARIM',		@Ville = 'Nantes';
EXECUTE uspInsertClient	@Nom = 'ISAAC',		@Ville = 'Versailles';
Exécuter la procédure avec un INSERT INTO avec du code T-SQL
Exécuter la procédure avec un INSERT INTO avec du code T-SQL

Enfin, contrôler le résultat de la requête et lire les données avec une requête SELECT sur la table des clients. Noter que les trois clients sont présents deux fois chacun dans la table. Ce qui correspond aux six exécutions de la commande SQL. Soit trois fois avec l’option d’affichage du nombre de ligne activée et trois fois avec l’option d’affichage désactivée.

SELECT * FROM dbo.CLIENTS;

Ce tutoriel sur le développement T-SQL explique comment insérer des données depuis une procédure stockée SQL Server. Voici enfin un tutoriel pour créer une procédure stockée SQL qui retourne des valeurs avec l’option OUTPUT.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*