316 votes

Ce qui est une procédure stockée ?

Ce qui est une procédure stockée ? Comment ça marche ? Quelle est la composition d’une procédure stockée (choses chaque doit avoir pour être une procédure stockée) ?

256voto

JoshBerke Points 34238

Les Procédures stockées sont d'un lot d'instructions SQL qui peut être exécutée dans un couple des manières. La plupart des grands Sgbd en charge les procédures stockées; cependant, pas tous. Vous aurez besoin de vérifier auprès de votre SGBD aide de la documentation pour les détails. Comme je suis très famillar avec SQL Server, je vais l'utiliser comme mes échantillons.

Pour créer une procédure stockée, la syntaxe est assez simple:

CREATE PROCEDURE <owner>.<procedure name>

     <Param> <datatype>

AS

     <Body>

Ainsi, par exemple:

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

Un des avantages de procédures stockées, c'est que vous pouvez centraliser la logique d'accès aux données en un seul endroit qui est facile pour les administrateurs de base de données pour optimiser. Procédures stockées ont également une prestation de sécurité que vous pouvez accorder des droits d'exécution d'une procédure stockée, mais l'utilisateur n'aura pas besoin d'avoir des autorisations de lecture/écriture sur les tables sous-jacentes. C'est une bonne première étape contre les injections SQL.

Procédures stockées ne viennent avec des inconvénients, essentiellement la maintaince associé à votre base opération CRUD. Disons que pour chaque tableau, vous avez un Insert, Update, Delete et au moins une sélection basée sur la clé Primaire, cela signifie que chaque table aura 4 procédures. Maintenant, prenez une bonne taille de la base de données de 400 tables, et vous avez 1600 procédures! Et c'est en supposant que vous n'avez pas de doublons qui vous probally volonté.

C'est l'utilisation d'un ORM ou d'une autre méthode pour générer automatiquement votre base opérations CRUD a une tonne de mérite.

154voto

sidhewsar Points 72

Une Procédure stockée est un Ensemble précompilés Sql qui est utilisée pour Effectuer Une Tâche particulière

Exemple:- si j'ai Employé le Tableau

Employee ID  Name       Age  Mobile
001          Sidheswar  25   9938885469
002          Pritish    32   9178542436

D'abord, je suis de la récupération de la table Employee

Create Procedure Employee details
As
Begin
Select * from Employee
End

Pour Exécuter La Procédure dans SQl Server

Execute   Employee details

--- (Employee details is a user defined name, give a name as you want)

Puis la Deuxième, je suis l'insertion de la valeur à la Table des Employés

Create Procedure employee_insert (@EmployeeID   int,@Name Varchar (30), @Age int, @Mobile int)
As
Begin
Insert In to Employee Values (@EmployeeID, @Name, @Age, @Mobile )
End

Pour Exécuter La Procédure Paramétrée dans SQl Server

Execute employee_insert 003,'xyz',27,1234567890

  --(Para meter Size must be Same with declared Column Size)

EX:-@Name Varchar(30) Dans la Table des Employés, Le Nom de la Colonne s Taille doit être de type varchar(30)

84voto

Kanwar Singh Points 202

Une procédure stockée est un groupe d'instructions sql qui a été créé et stocké dans la base de données. Procédure stockée accepter des paramètres d'entrée, de sorte qu'une seule et même procédure peut être utilisée sur le réseau par plusieurs clients à l'aide de différentes données d'entrée. Procédure stockée de réduire le trafic réseau et d'augmenter les performances. Si nous décidons de modifier la procédure stockée tous les clients recevront la mise à jour de la procédure stockée

Exemple de la création de la Procédure Stockée

 USE dbtest;
 GO
    CREATE PROCEDURE test_display
    AS
   SELECT FirstName, LastName FROM tb_test;
  GO
    EXEC test_display;

   GO
  DROP PROCEDURE test_display;
          GO

Avantages de l'utilisation de procédures stockées

a) a) procédure Stockée permet la programmation modulaire.

Vous pouvez créer la procédure une fois, les stocker dans la base de données, et de l'appeler n'importe quel nombre de fois dans votre programme.

b) b) de la Procédure Stockée permet une exécution plus rapide.

Si l'opération nécessite une grande quantité de code SQL est exécutée de façon répétitive, des procédures stockées peuvent être plus rapides. Ils sont analysés et optimisés quand ils sont d'abord exécutés, et une version compilée de la procédure stockée reste en mémoire cache pour une utilisation ultérieure. Cela signifie que la procédure stockée n'a pas besoin d'être réanalysée et reoptimized à chaque utilisation, ce qui beaucoup plus rapide temps d'exécution.

c) c) Procédure Stockée peut réduire le trafic réseau.

Une opération nécessitant des centaines de lignes de code Transact-SQL peut être réalisée par une seule instruction qui s'exécute le code dans une procédure, plutôt que d'envoyer des centaines de lignes de code sur le réseau.

d) d) des procédures Stockées fournir une meilleure sécurité de vos données

Les utilisateurs peuvent obtenir l'autorisation d'exécuter une procédure stockée, même si elles n'ont pas l'autorisation d'exécuter la procédure de déclarations directement.

En SQL, nous sommes d'avoir différents types de procédures stockées sont là

un Système de Procédures Stockées b) Défini par l'Utilisateur des procédures Stockées c) les Procédures Stockées Étendues

Les Procédures Stockées Du Système:

Les procédures stockées sont stockées dans la base de données master et ce sont commence par un préfixe sp_. Ces procédures peuvent être utilisés pour effectuer une variété de tâches pour soutenir les fonctions de sql server pour l'application externe d'appels dans les tables système

Ex: sp_helptext [StoredProcedure_Name]

Défini Par L'Utilisateur Des Procédures Stockées:

Défini par l'utilisateur des procédures stockées sont généralement stockées dans une base de données utilisateur et sont généralement conçus pour exécuter les tâches de l'utilisateur de la base de données. Alors que la codification de ces procédures n'utilisez pas de préfixe sp_ parce que si nous utilisons le préfixe sp_ d'abord il va vérifier la base de données master alors, il s'agit défini par l'utilisateur de la base de données

Les Procédures Stockées Étendues:

Les procédures stockées étendues sont les procédures d'appel des fonctions à partir de fichiers DLL. Maintenant, un jour les procédures stockées étendues sont amortis pour cette raison, il serait préférable d'éviter d'utiliser des procédures Stockées Étendues.

38voto

Dave Swersky Points 25958

En règle générale, une procédure stockée est une « fonction SQL ». Ils ont :

Il s’agit d’un exemple de T-SQL concentré. Les procédures stockées peuvent exécuter la plupart des instructions SQL, les valeurs de retour scalaires et basée sur une table et sont considérés comme pour être plus sûr, car elles empêchent les attaques par injection SQL.

9voto

MAA Points 262

Procédure stockée est principalement utilisé pour effectuer certaines tâches sur la base de données. par exemple

  • Téléchargez jeux de résultats de DB d’une logique métier sur les données.
  • Exécuter plusieurs opération DB à appel unique.
  • Utilisé pour migrer des données d’une table vers une autre table.
  • Peut être appelée pour autre langage de programmation comme java.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X