Heim >php教程 >PHP开发 >Grundkenntnisse über gespeicherte Prozeduren in SQL Server

Grundkenntnisse über gespeicherte Prozeduren in SQL Server

高洛峰
高洛峰Original
2016-12-14 13:40:301259Durchsuche

Was ist eine gespeicherte Prozedur?
Eine gespeicherte Prozedur ist ein oder mehrere SQL-Befehle, die als ausführbare Objekte in der Datenbank gespeichert sind.
Laienhaft ausgedrückt: Eine gespeicherte Prozedur ist eigentlich eine Reihe von SQL-Anweisungen, die bestimmte Vorgänge abschließen können.

Warum dann gespeicherte Prozeduren verwenden?
1. Gespeicherte Prozeduren werden nur dann kompiliert, wenn sie in Zukunft ausgeführt werden. Im Allgemeinen werden SQL-Anweisungen bei jeder Ausführung einmal neu kompiliert, sodass dies möglich ist Verbessern Sie die Ausführungsgeschwindigkeit der Datenbank.
2. Bei der Ausführung komplexer Vorgänge in der Datenbank können die komplexen Vorgänge in gespeicherten Prozeduren gekapselt und in Verbindung mit der von der Datenbank bereitgestellten Transaktionsverarbeitung verwendet werden.
3. Gespeicherte Prozeduren können wiederverwendet werden, was die Arbeitsbelastung von Datenbankentwicklern verringern kann.
4. Hohe Sicherheit, Sie können festlegen, dass nur bestimmte Benutzer das Recht haben, die angegebene gespeicherte Prozedur zu verwenden.

Wie verwende ich die gespeicherte Prozedur?
Im Folgenden wird die Student-Tabelle verwendet, um mehr über gespeicherte Prozeduren zu erfahren. Da wir die einfache Verwendung gespeicherter Prozeduren verstehen möchten, sind alle Beispiele sehr einfach.

Grundkenntnisse über gespeicherte Prozeduren in SQL Server

Gespeicherte Prozedur ohne Parameter:
Wählen Sie alle Informationen in der Student-Tabelle aus,

create proc StuProc
as      //此处 as 不可以省略不写
begin   //begin 和 end 是一对,不可以只写其中一个,但可以都不写
select S#,Sname,Sage,Ssex from student
end
go

Gespeicherte Prozeduren mit Parametern:
Global Variable
Globale Variablen werden auch als externe Variablen bezeichnet. Sie werden außerhalb der Funktion definiert. Ihr Gültigkeitsbereich beginnt an der Stelle, an der die Variable definiert ist, und endet am Ende der Programmdatei.
Wählen Sie die Schülerinformationen des angegebenen Namens aus:

create proc StuProc
@sname varchar(100)   
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc '赵雷'   //执行语句

Das Obige dient dazu, der Variablen extern einen Wert zuzuweisen, oder Sie können den Standardwert für die Variable direkt intern festlegen

create proc StuProc
@sname varchar(100)='赵雷'
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc

Sie können auch die Ausgabe verwenden, um den Inhalt von Variablen auszugeben.

create proc StuProc
@sname varchar(100),
@IsRight int  output //传出参数
as 
if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)
set @IsRight =1
else
set @IsRight=0
go

declare @IsRight int 
exec StuProc '赵雷' , @IsRight output
select @IsRight

Die oben genannten sind globale Variablen.
Lokale Variablen werden auch interne Variablen genannt. Lokale Variablen werden innerhalb der Funktion definiert. Ihr Gültigkeitsbereich ist auf die Funktion innerhalb der Funktion beschränkt und es ist illegal, solche Variablen nach dem Verlassen der Funktion zu verwenden.
Die Definition lokaler Variablen: Sie müssen mit dem Declare-Befehl festgelegt werden, bevor sie verwendet werden können. Deklarieren Sie {@Variablennamen-Datentyp.🎜>Die Zuweisungsmethode lokaler Variablen: Set{@Variablenname=Ausdruck} oder select{@variable name=expression}
Anzeige lokaler Variablen: select @variable name

create proc StuProc
as 
declare @sname varchar(100)
set @sname='赵雷'
select S#,Sname,Sage,Ssex from student where sname=@sname
go

exec StuProc
Was ist, wenn Sie die Daten lokaler Variablen anzeigen möchten?

create proc StuProc
as 
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go

exec StuProc


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