Erstellen einer gespeicherten ProzedurCreate a Stored Procedure

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

In diesem Thema wird das Erstellen einer gespeicherten Transact-SQLTransact-SQL -Prozedur mithilfe von SQL Server Management StudioSQL Server Management Studio und der Transact-SQLTransact-SQL -Anweisung CREATE PROCEDURE beschrieben.This topic describes how to create a Transact-SQLTransact-SQL stored procedure by using SQL Server Management StudioSQL Server Management Studio and by using the Transact-SQLTransact-SQL CREATE PROCEDURE statement.

BerechtigungenPermissions

Erfordert die CREATE PROCEDURE-Berechtigung in der Datenbank und die ALTER-Berechtigung auf dem Schema, in dem die Prozedur erstellt wird.Requires CREATE PROCEDURE permission in the database and ALTER permission on the schema in which the procedure is being created.

So erstellen Sie eine gespeicherte ProzedurHow to Create a Stored Procedure

Sie können eine der folgenden Anwendungen verwenden:You can use one of the following:

Verwenden von SQL Server Management StudioUsing SQL Server Management Studio

So erstellen Sie eine Prozedur im Objekt-ExplorerTo create a procedure in Object Explorer

  1. Stellen Sie im Objekt-Explorereine Verbindung mit einer Instanz von Datenbank-EngineDatabase Engine her, und erweitern Sie dann diese Instanz.In Object Explorer, connect to an instance of Datenbank-EngineDatabase Engine and then expand that instance.

  2. Erweitern Sie Datenbanken, erweitern Sie die AdventureWorks2012AdventureWorks2012 -Datenbank, und erweitern Sie dann Programmierbarkeit.Expand Databases, expand the AdventureWorks2012AdventureWorks2012 database, and then expand Programmability.

  3. Klicken Sie mit der rechten Maustaste auf Gespeicherte Prozeduren, und klicken Sie dann auf Neue gespeicherte Prozedur.Right-click Stored Procedures, and then click New Stored Procedure.

  4. Klicken Sie im Menü Abfrage auf Werte für Vorlagenparameter angeben.On the Query menu, click Specify Values for Template Parameters.

  5. Geben Sie im Dialogfeld Werte für Vorlagenparameter angeben die folgenden Werte für die angezeigten Parameter ein.In the Specify Values for Template Parameters dialog box, enter the following values for the parameters shown.

    ParameterParameter valueValue
    AuthorAuthor Ihr NameYour name
    Erstellt amCreate Date Das heutige DatumToday's date
    und BeschreibungDescription Gibt Mitarbeiterdaten zurück.Returns employee data.
    ProzedurnameProcedure_name HumanResources.uspGetEmployeesTestHumanResources.uspGetEmployeesTest
    @Param1 @LastName
    @Datatype_For_Param1 nvarchar(50)nvarchar(50)
    Default_Value_For_Param1Default_Value_For_Param1 NULLNULL
    @Param2 @FirstName
    @Datatype_For_Param2 nvarchar(50)nvarchar(50)
    Default_Value_For_Param2Default_Value_For_Param2 NULLNULL
  6. Klicken Sie auf OK.Click OK.

  7. Ersetzen Sie im Abfrage-Editordie SELECT-Anweisung durch die folgende Anweisung:In the Query Editor, replace the SELECT statement with the following statement:

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    
  8. Zum Testen der Syntax klicken Sie im Menü Abfrage auf Analysieren.To test the syntax, on the Query menu, click Parse. Wenn eine Fehlermeldung zurückgegeben wird, vergleichen Sie die Anweisungen mit den Informationen oben und korrigieren Sie sie gegebenenfalls.If an error message is returned, compare the statements with the information above and correct as needed.

  9. Zum Erstellen der Prozedur klicken Sie im Menü Abfrage auf Ausführen.To create the procedure, from the Query menu, click Execute. Die Prozedur wird als Objekt in der Datenbank erstellt.The procedure is created as an object in the database.

  10. Damit die Prozedur im Objekt-Explorer angezeigt wird, klicken Sie mit der rechten Maustaste auf Gespeicherte Prozeduren und wählen Aktualisierenaus.To see the procedure listed in Object Explorer, right-click Stored Procedures and select Refresh.

  11. Um die Prozedur auszuführen, klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Namen HumanResources.uspGetEmployeesTest der gespeicherten Prozedur, und wählen Sie Gespeicherte Prozedur ausführenaus.To run the procedure, in Object Explorer, right-click the stored procedure name HumanResources.uspGetEmployeesTest and select Execute Stored Procedure.

  12. Geben Sie im Fenster Prozedur ausführen den Wert „Margheim“ für den Parameter @LastName und den Wert „Diane“ für den Parameter @FirstName ein.In the Execute Procedure window, enter Margheim as the value for the parameter @LastName and enter the value Diane as the value for the parameter @FirstName.

Warnung

Überprüfen Sie alle Benutzereingaben.Validate all user input. Verketten Sie keine Benutzereingaben, bevor Sie sie überprüft haben.Do not concatenate user input before you validate it. Führen Sie niemals Befehle aus, die sich aus nicht überprüften Benutzereingaben zusammensetzen.Never execute a command constructed from unvalidated user input.

Verwenden von Transact-SQLUsing Transact-SQL

So erstellen Sie eine Prozedur im Abfrage-EditorTo create a procedure in Query Editor

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-EngineDatabase Engine-Instanz her.In Object Explorer, connect to an instance of Datenbank-EngineDatabase Engine.

  2. Klicken Sie im Menü Datei auf Neue Abfrage.From the File menu, click New Query.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.Copy and paste the following example into the query window and click Execute. In diesem Beispiel wird die gleiche gespeicherte Prozedur wie oben mit einem anderen Prozedurnamen erstellt.This example creates the same stored procedure as above using a different procedure name.

    USE AdventureWorks2012;  
    GO  
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2   
        @LastName nvarchar(50),   
        @FirstName nvarchar(50)   
    AS   
    
        SET NOCOUNT ON;  
        SELECT FirstName, LastName, Department  
        FROM HumanResources.vEmployeeDepartmentHistory  
        WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    GO  
    
    
  4. Um die Prozedur auszuführen, kopieren Sie das folgende Beispiel und fügen es in ein neues Abfragefenster ein und klicken auf Ausführen.To run the procedure, copy and paste the following example into a new query window and click Execute. Beachten Sie, dass verschiedene Methoden zum Angeben von Parameterwerten dargestellt werden.Notice that different methods of specifying the parameter values are shown.

    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';  
    -- Or  
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';  
    GO  
    -- Or  
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';  
    GO  
    
    

Weitere InformationenSee Also

CREATE PROCEDURE (Transact-SQL)CREATE PROCEDURE (Transact-SQL)