Heim >Datenbank >SQL >Eine kurze Diskussion über gespeicherte Datenbankprozeduren

Eine kurze Diskussion über gespeicherte Datenbankprozeduren

步履不停
步履不停Original
2019-06-14 11:25:3940399Durchsuche

Eine kurze Diskussion über gespeicherte Datenbankprozeduren

Was ist eine gespeicherte Prozedur?

Wenn Sie mit anderen Programmiersprachen vertraut sind, ist es leicht zu verstehen, dass gespeicherte Prozeduren einfach sind wie Methoden.

Es stellt sich heraus, dass es sich um eine Methode handelt, also hat sie einen ähnlichen Methodennamen, die von der Methode zu übergebenden Variablen und das Rückgabeergebnis, also hat die gespeicherte Prozedur einen gespeicherten Prozedurnamen, gespeicherte Prozedurparameter usw Rückgabewert.

Vorteile gespeicherter Prozeduren:

  • Die Fähigkeit gespeicherter Prozeduren verbessert die Funktionalität und Flexibilität der SQL-Sprache erheblich.
  • gewährleistet Datensicherheit und -integrität.
  • Über gespeicherte Prozeduren können Benutzer ohne Berechtigungen indirekt kontrolliert auf die Datenbank zugreifen und so die Datensicherheit gewährleisten.
  • Durch gespeicherte Prozeduren können verwandte Aktionen gemeinsam ausgeführt werden, wodurch die Integrität der Datenbank gewahrt bleibt.
  • Vor dem Ausführen der gespeicherten Prozedur hat die Datenbank deren Grammatik und Syntax analysiert und einen optimierten Ausführungsplan bereitgestellt. Dieser kompilierte Prozess kann die Leistung von SQL-Anweisungen erheblich verbessern.
  • kann den Netzwerkverkehr reduzieren.
  • Legen Sie das Computerprogramm, das die Unternehmensregeln verkörpert, zur zentralen Steuerung auf dem Datenbankserver ab.

Gespeicherte Prozeduren können in gespeicherte Systemprozeduren, erweiterte gespeicherte Prozeduren und benutzerdefinierte gespeicherte Prozeduren unterteilt werden.

Gespeicherte Systemprozeduren

Wir Werfen wir zunächst einen Blick auf die gespeicherten Systemprozeduren. Die gespeicherten Systemprozeduren werden vom System definiert und hauptsächlich in der MASTER-Datenbank gespeichert. Die Namen beginnen mit „SP“ oder „XP“. Obwohl sich diese gespeicherten Systemprozeduren in der MASTER-Datenbank befinden,

Wir können jedoch weiterhin gespeicherte Systemprozeduren in anderen Datenbanken aufrufen. Es gibt einige gespeicherte Systemprozeduren, die automatisch in der aktuellen Datenbank erstellt werden, wenn eine neue Datenbank erstellt wird.

Häufig verwendete Systemprozeduren sind:

  • exec sp_databases; student ;--Spalten anzeigen
  • exec sp_helpIndex student;--Index anzeigen
  • exec sp_helpConstraint student;--Constraints
  • exec sp_helptext 'sp_stored_procedures';--Gespeicherte Prozedur anzeigen Erstellung definierter Anweisungen
  • exec sp_stored_procedures;
  • exec sp_rename student, stuInfo;--Tabellennamen ändern
  • exec sp_renamedb myTempDB, myDB;--Datenbanknamen ändern
  • exec sp_defaultdb 'master', 'myDB';--Ändern Sie die Standarddatenbank des Anmeldenamens
  • exec sp_helpdb;--Datenbankhilfe, Datenbankinformationen abfragen
  • exec sp_helpdb master;
  • Die Syntax zum Erstellen einer gespeicherten Prozedur lautet wie folgt:
  • CREATE PROC[EDURE] 存储过程名 
    
    @参数1 [数据类型]=[默认值] [OUTPUT] 
    
    @参数2 [数据类型]=[默认值] [OUTPUT]
    
    AS 
    
    SQL语句
    
    EXEC 过程名[参数]
  • Verwenden einer gespeicherten Prozedurinstanz:
1. Ohne Parameter

create procedure proc_select_officeinfo--(存储过程名)as select Id,Name from Office_Info--(sql语句)

exec proc_select_officeinfo--(调用存储过程)

2. Mit Eingabeparametern

create procedure procedure_proc_GetoffinfoById ----  Name  dbo.Office_Info  Id=@Id----(存储过程名称之后,空格加上参数,多个参数中间以逗号分隔)

注:参数赋值是,第一个参数可以不写参数名称,后面传入参数,需要明确传入的是哪个参数名称
3. Mit Eingabe- und Ausgabeparametern

erstellen procedure proc_office_info--( Name der gespeicherten Prozedur)

@Id int,@Name varchar(20) Ausgabe--(Parametername Parametertyp) Ausgehende Parameter sollten mit Ausgabe hinzugefügt werden

als

begin
select @Name=Name aus dbo.Office_Info wobei Id=@Id --(SQL-Anweisung)
end

declare @houseName varchar(20) --Eine Variable deklarieren und den von der gespeicherten Prozedur übergebenen Wert abrufen
exec proc_office_info- -(Name der gespeicherten Prozedur)
4,@houseName Ausgabe--(Es wird gesagt, dass der Parameter eine Ausgabe hinzufügen muss. Wenn Sie hier @variable = OUTPUT verwenden, wird ein Fehler gemeldet Schreibmethode ändern)

wählen Sie @houseName-- (Anzeigewert)



Mit Rückgabewert


create procedure proc_office_info--(存储过程名)
@Id int--(参数名 参数类型)as beginif(select Name from dbo.Office_Info where Id=@Id)=null --(sql语句)
beginreturn -1endelsebeginreturn 1end
end

declare @house varchar(20) --声明一个变量,获取存储过程传出来的值
exec @house=proc_office_info 2 --(调用存储过程,用变量接收返回值)--注:带返回值的存储过程只能为int类型的返回值
print @house

Weitere technische Artikel zu SQL finden Sie in der Spalte

SQL-Tutorial

zum Lernen!

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über gespeicherte Datenbankprozeduren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn