logo

Procediments emmagatzemats SQL

Un procediment emmagatzemat en SQL és un grup de consultes SQL que es poden desar i reutilitzar diverses vegades. És molt útil ja que redueix la necessitat de reescriure consultes SQL. Millora l'eficiència, la reutilització i la seguretat en la gestió de bases de dades.

Els usuaris també poden passar paràmetres als procediments emmagatzemats perquè el procediment emmagatzemat pugui actuar sobre els valors dels paràmetres passats.

Els procediments emmagatzemats es creen per dur a terme un o més DML operacions a la base de dades. No és més que un grup de Sentències SQL que accepta alguna entrada en forma de paràmetres, realitza alguna tasca i pot o no retornar un valor.



Sintaxi

Dues sintaxis importants per utilitzar procediments emmagatzemats en SQL són:

Sintaxi per crear un procediment emmagatzemat

CREATE PROCEDURE nom_procediment
(tipus de dades del paràmetre1, tipus de dades del paràmetre2, …)
AS
COMENÇAR
— Sentències SQL a executar
FINAL

quantes setmanes en un mes

Sintaxi per executar el procediment emmagatzemat

EXEC nom_procediment valor_paràmetre1, valor_paràmetre2, ..

Paràmetre

La part més important són els paràmetres. Els paràmetres s'utilitzen per passar valors al procediment. Hi ha diferents tipus de paràmetres, que són els següents:

  1. COMENÇAR: Això és el que s'executa directament o podem dir que és una part executable.
  2. FINAL: Fins a això, el codi s'executarà.

Exemple de procediment emmagatzemat SQL

Vegem un exemple de procediment emmagatzemat en SQL per entendre-ho millor.

Imagineu una base de dades anomenada SampleDB, una taula anomenada Clients amb algunes dades de mostra i un procediment emmagatzemat anomenat GetCustomersByCountry.

0,0625 com a fracció

El procediment emmagatzemat pren el paràmetre País i retorna una llista de clients de la taula Clients que coincideix amb el país especificat. Finalment, el procediment emmagatzemat s'executa amb el paràmetre Sri Lanka per recuperar la llista de clients de Sri Lanka.

Consulta:

-- Create a new database named 'SampleDB' CREATE DATABASE SampleDB;  -- Switch to the new database USE SampleDB;  -- Create a new table named 'Customers' CREATE TABLE Customers (  CustomerID INT PRIMARY KEY,  CustomerName VARCHAR(50),  ContactName VARCHAR(50),  Country VARCHAR(50) );  -- Insert some sample data into the Customers table INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country) VALUES (1, 'Shubham', 'Thakur', 'India'),  (2, 'Aman ', 'Chopra', 'Australia'),  (3, 'Naveen', 'Tulasi', 'Sri lanka'),  (4, 'Aditya', 'Arpan', 'Austria'),  (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain');  -- Create a stored procedure named 'GetCustomersByCountry' CREATE PROCEDURE GetCustomersByCountry  @Country VARCHAR(50) AS BEGIN  SELECT CustomerName, ContactName  FROM Customers  WHERE Country = @Country; END;  -- Execute the stored procedure with parameter 'Sri lanka' EXEC GetCustomersByCountry @Country = 'Sri lanka';>

Nota: Haureu d'assegurar-vos que el compte d'usuari té els privilegis necessaris per crear una base de dades. Podeu provar d'iniciar sessió com un usuari diferent amb privilegis administratius o contactar amb l'administrador de la base de dades per concedir els privilegis necessaris al vostre compte d'usuari. Si utilitzeu un servei de base de dades basat en núvol, assegureu-vos que heu configurat correctament el compte d'usuari i els seus permisos.

Sortida:

Nom del client Nom de contacte
Naveen Tulasi

Punts importants sobre els procediments emmagatzemats d'SQL

  • Un procediment emmagatzemat és un codi SQL preparat que podeu desar, de manera que el codi es pot reutilitzar una i altra vegada.
  • Els procediments emmagatzemats permeten que el codi que s'utilitza repetidament es desi a la base de dades i s'executi des d'allà, en lloc del client. Això proporciona un enfocament més modular per al disseny de bases de dades.
  • Com que els procediments emmagatzemats es compilen i s'emmagatzemen a la base de dades, són molt eficients. SQL Server compila cada procediment emmagatzemat una vegada i després reutilitza el pla d'execució. Això condueix a grans augments de rendiment quan els procediments emmagatzemats es criden repetidament.
  • Els procediments emmagatzemats proporcionen una millor seguretat a les vostres dades. Els usuaris poden executar un procediment emmagatzemat sense necessitat d'executar cap de les sentències directament. Per tant, es pot concedir permís a un usuari per executar un procediment emmagatzemat sense tenir cap permís a les taules subjacents.
  • Els procediments emmagatzemats poden reduir el trànsit i la latència de la xarxa, augmentant el rendiment de l'aplicació. Una única trucada a un procediment emmagatzemat pot executar moltes sentències.
  • Els procediments emmagatzemats tenen un millor suport per al maneig d'errors.
  • Els procediments emmagatzemats es poden utilitzar per proporcionar una funcionalitat avançada de bases de dades, com ara modificar dades a les taules i encapsular aquests canvis dins de les transaccions de la base de dades.