Création, modification et suppression des procédures stockées

Dans SMO (SQL Server Management Objects), les procédures stockées sont représentées par l'objet StoredProcedure.

La création d'un objet StoredProcedure dans SMO requiert la définition de la propriété TextBody sur le script Transact-SQL qui définit la procédure stockée. Les paramètres requièrent le préfixe @ et doivent être créés individuellement en utilisant des objets StoredProcedureParameter et en les ajoutant à la collection StoredProcedureParameter de l'objet StoredProcedure.

Exemple

Pour utiliser un exemple de code fourni, vous devez sélectionner l'environnement, le modèle et le langage de programmation à utiliser pour créer votre application. Pour plus d'informations, consultez Procédure : créer un projet SMO Visual Basic dans Visual Studio .NET ou Procédure : créer un projet SMO Visual C# dans Visual Studio .NET.

Création, modification et suppression d'une procédure stockée en Visual Basic

Cet exemple de code montre comment créer une procédure stockée pour la base de données AdventureWorks. L'exemple retourne le nom d'un employé lorsque le numéro d'ID d'employé est fourni. La procédure stockée requiert un paramètre d'entrée pour spécifier le numéro d'ID d'employé et un paramètre de sortie pour retourner le nom de l'employé.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks database.
Dim db As Database
db = srv.Databases("AdventureWorks")
'Define a StoredProcedure object variable by supplying the parent database and name arguments in the constructor.
Dim sp As StoredProcedure
sp = New StoredProcedure(db, "GetLastNameByEmployeeID")
'Set the TextMode property to false and then set the other object properties.
sp.TextMode = False
sp.AnsiNullsStatus = False
sp.QuotedIdentifierStatus = False
'Add two parameters.
Dim param As StoredProcedureParameter
param = New StoredProcedureParameter(sp, "@empval", DataType.Int)
sp.Parameters.Add(param)
Dim param2 As StoredProcedureParameter
param2 = New StoredProcedureParameter(sp, "@retval", DataType.NVarChar(50))
param2.IsOutputParameter = True
sp.Parameters.Add(param2)
'Set the TextBody property to define the stored procedure.
Dim stmt As String
stmt = " SELECT @retval = (SELECT LastName FROM Person.Contact,HumanResources.Employee WHERE Person.Contact.ContactID = HumanResources.Employee.ContactID AND  HumanResources.Employee.EmployeeID = @empval )"
sp.TextBody = stmt
'Create the stored procedure on the instance of SQL Server.
sp.Create()
'Modify a property and run the Alter method to make the change on the instance of SQL Server.   
sp.QuotedIdentifierStatus = True
sp.Alter()
'Remove the stored procedure.
sp.Drop()

Création, modification et suppression d'une procédure stockée en Visual C#

Cet exemple de code montre comment créer une procédure stockée pour la base de données AdventureWorks. L'exemple retourne le nom d'un employé lorsque le numéro d'ID d'employé est fourni. La procédure stockée requiert un paramètre d'entrée pour spécifier le numéro d'ID d'employé et un paramètre de sortie pour retourner le nom de l'employé.

{ 
//Connect to the local, default instance of SQL Server. 
Server srv; 
srv = new Server(); 
//Reference the AdventureWorks database. 
Database db; 
db = srv.Databases("AdventureWorks"); 
//Define a StoredProcedure object variable by supplying the parent database and name arguments in the constructor. 
StoredProcedure sp; 
sp = new StoredProcedure(db, "GetLastNameByEmployeeID"); 
//Set the TextMode property to false and then set the other object properties. 
sp.TextMode = false; 
sp.AnsiNullsStatus = false; 
sp.QuotedIdentifierStatus = false; 
//Add two parameters. 
StoredProcedureParameter param; 
param = new StoredProcedureParameter(sp, "@empval", DataType.Int); 
sp.Parameters.Add(param); 
StoredProcedureParameter param2; 
param2 = new StoredProcedureParameter(sp, "@retval", DataType.NVarChar(50)); 
param2.IsOutputParameter = true; 
sp.Parameters.Add(param2); 
//Set the TextBody property to define the stored procedure. 
string stmt; 
stmt = " SELECT @retval = (SELECT LastName FROM Person.Contact,HumanResources.Employee WHERE Person.Contact.ContactID = HumanResources.Employee.ContactID AND HumanResources.Employee.EmployeeID = @empval )"; 
sp.TextBody = stmt; 
//Create the stored procedure on the instance of SQL Server. 
sp.Create(); 
//Modify a property and run the Alter method to make the change on the instance of SQL Server. 
sp.QuotedIdentifierStatus = true; 
sp.Alter(); 
//Remove the stored procedure. 
sp.Drop(); 
}

Voir aussi

Référence