![]() |
stored procedures |
raccolta compilata di comandi SQL e istruzioni di controllo
aumentano la potenza, l'efficienza e la flessibilit� e migliorano le performances
creazione:
CREATE PROCEDURE utenti AS
parametri:
CREATE PROCEDURE nomi @cognome varchar(40)
valori default:
CREATE PROCEDURE indici @table varchar(30) = NULL
CREATE PROCEDURE indici2 @table varchar(30) = 'sys%'
restituzione del valore di stato:
DECLARE @status int
valore di stato generato dall'utente:
CREATE PROCEDURE nomi2 @cognome varchar(40)
CREATE PROCEDURE nomi3 @cognome varchar(40)
restituzione valori ai paramentri:
CREATE PROC dividi @dividendo smallint, @divisore smallint, @quoziente int OUTPUT AS
DECLARE @risultato int
altri esempi:
utenti
AS SELECT nome, cognome FROM anag WHERE cognome = @cognome
nomi Fontana
AS IF @table IS NULL PRINT 'dammi una tabella'
ELSE SELECT sysobjects.name, sysindexes.name, indid FROM sysobjects, sysindexes
WHERE sysobjects.name = @table AND sysobjects.id = sysindexes.id
indici autori
AS SELECT sysobjects.name, sysindexes.name, indid FROM sysobjects, sysindexes
WHERE sysobjects.name = @table AND sysobjects.id = sysindexes.id
indici2
indici2 autori
EXECUTE @status = nomi @cognome = Fontana
SELECT status = @status
AS IF (SELECT nome, cognome FROM anag WHERE cognome = @cognome) = 1
RETURN 1 ELSE RETURN 2
AS
DECLARE @retvalue int
EXECUTE @retvalue = nomi2 @cognome
IF (@retvalue = 1) PRINT 'esiste almeno un @cognome'
ELSE PRINT 'non esiste nessuno che si chiama @cognome'
nomi3 Fontana
non esiste nessuno che si chiama Fontana
IF @divisore = 0 BEGIN
SELECT @quoziente = NULL
RETURN -100
END
SELECT @quoziente = @dividendo / @divisore
RETURN 0
DECLARE @status int
EXECUTE @status = dividi 64, 8, @risultato OUTPUT
SELECT @status, @risultato
0 8
EXECUTE @status = dividi 64, 0, @risultato OUTPUT
SELECT @status, @risultato
-100 NULL