Home

Un Examen des Procédures Stockées Intégrées de Transact-SQL

Introduction

Pour vous aider à la gestion des bases de données, Microsoft SQL Server, Transact-SQL fournit de nombreuses procédures stockées intégrées.

 

Renommer un objet

Pour renommer un objet qui a été créé dans la base de données actuelle, vous pouvez appeler la procédure sp_rename stockée. Sa syntaxe est la suivante :

sp_rename [@objname =] 'object_name', [@newname =]'new_name ' 
    [, [@objtype =]' object_type'] 

L' object_name est le nom de l'objet que vous voulez supprimer.

Le new_name est le nouveau nom que l'objet aura.

L'object_type est une option. Il vous permet de spécifier le type d'objet que vous essayez de renommer.

La procédure stockée sp_rename peut être utilisée pour renommer une table. Voici un exemple :

USE ExerciSe ; 
GO 
EXEC sp_rename N'Contractors', 
N'Employees'; 
GO

Lorsque ce code s'exécute, une table nommée Contractors aura son nom modifié aux employés.

La procédure de sp_rename stockée peut également être utilisée pour renommer une colonne ou un index. Dans ce cas, le nom de l'objet doit être qualifié.

Envoi d'E-mails

Pour vous donner la possibilité d'envoyer un courrier électronique à partir d'une base de données, Transact-SQL fournit la procédure sp_send_dbmail stockés. Cette procédure de magasin est créée dans la base de données msdb. Cela signifie que vous devez vous référencer lors de l'exécution de cette procédure. Sa syntaxe est la suivante :

sp_send_dbmail [ [@profile_name = ] 'profile_name']      
    [ , [ @recipients =] 'recipients [ ; ...n ]' ]      
    [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]      
    [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]      
    [ , [ @subject = ] 'subject' ]       
    [ , [ @body = ] 'body' ]      
    [ , [ @body_format = ] 'body_format' ]      
    [ , [ @importance = ] 'importance' ]     
    [ , [ @sensitivity = ] 'sensitivity' ]      
    [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]     
    [ , [ @query = ] 'query' ]      
    [ , [ @execute_query_database = ] 'execute_query_database' ]     
    [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]      
    [ , [ @query_attachment_filename = ] query_attachment_filename ]      
    [ , [ @query_result_header = ] query_result_header ]      
    [ , [ @query_result_width = ] query_result_width ]     
    [ , [ @query_result_separator = ] 'query_result_separator' ]      
    [ , [ @exclude_query_output = ] exclude_query_output ]     
    [ , [ @append_query_error = ] append_query_error ]     
    [ , [ @query_no_truncate = ] query_no_truncate ]      
    [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]

Comme vous pouvez le deviner, la plupart des arguments sont facultatifs. Dans le cas contraire :

  • La valeur profile_name doit détenir un valide pour un profil existant. Si vous omettez cet argument, le moteur de base de données utilise l'utilisateur actuel ou un profil par défaut créé dans la base de données msdb. S'il n'y a aucun profil par défaut, vous devez en créer un. Pour le faire, dans l'Explorateur d'objets, développez le nœud de gestion et double-cliquez sur messagerie de base de données. Un Assistant commencerait :
    Database Mail Configuration Wizard

    Cliquez sur Suivant. Si vous cherchez un nouveau profil, cliquez sur le premier bouton radio :

    Cliquez sur Suivant. Cela entraînerait la troisième page de l'Assistant :

    Dans la zone de texte Profile Name, entrez le nom de votre choix. Si vous le souhaitez, tapez quelques explications dans la zone de texte Description. Pour spécifier un compte qui peut envoyer des courriers électroniques, cliquez sur Add et remplissez le formulaire. Une fois que vous êtes prêt, cliquez sur OK. Si vous souhaitez ajouter un autre profil, cliquez à nouveau sur Add, remplissez le formulaire et cliquez sur OK. Sur la troisième page de l'Assistant, cliquez deux fois sur Suivant. Lorsque l'Assistant a terminé, cliquez sur Fermer.

  • La valeur de destinataires représente une ou plusieurs adresses de messagerie qui recevront le message. Si vous souhaitez envoyer le message à un seul destinataire, indiquez l'adresse. Pour recevoir le message de plusieurs destinataires, séparez leurs adresses e-mail par des virgules
  • La valeur de copy_recipient représente une ou plusieurs adresses e-mail qui recevront une copie du message. C'est l'équivalent de cc. Pour envoyer le message à plusieurs destinataires, indiquez l'adresse. Pour envoyer le message à plusieurs destinataires, fournir les adresses de courriel nécessaire séparées par des virgules
  • La valeur blind_copy_recipient suit les mêmes règles que l'argument copy_recipient, sauf que les destinataires ne verront pas l'adresse de courriel de l'autre. C'est l'équivalent de la bcc
  • La valeur de subject est le sujet du message
  • La valeur de body est le message réel à envoyer
  • La valeur de body_format spécifie le format à utiliser
  • La valeur d'importance spécifie le niveau d'importance du message
  • La valeur de sensitivity spécifie le type de sensibilité du message

Voici un exemple de l'exécution de cette procédure stockée :

USE Exercise ; 
GO 
 
 
EXEC msdb.dbo.sp_send_dbmail 
        @profile_name = N'Central Administrator ', 
        @ destinataires = N'jaywiler@hothothot.net ', 
        @ corps = table personnes N'The a reçu un nouvel enregistrement. ', 
        @ sujet = enregistrement N'New '; 
GO

Avant d'exécuter cette procédure, vous devez vérifier les paramètres de sécurité sur votre serveur. Sinon, vous pouvez recevoir une erreur. Voici un exemple :

MSG 15281, Level 16, State 1, Procedure sp_send_dbmail, Line 0 
SQL Server a bloqué l'accès à la procédure 'dbo.sp_send_dbmail' de la composante 'Database 
Mail XP' car cette composante est désactivée dans le cadre de la configuration de la sécurité pour ce serveur. 
Un administrateur système peut activer l'utilisation de 'Base de données mail XP' à l'aide de sp_configure. 
Pour plus d'informations sur l'activation de 'Base de données mail XP', 
reportez-vous à la section "Configuration de surface» dans la documentation en ligne de SQL Server.

Pour résoudre ce problème, ouvrez une fenêtre de requête et tapez le texte suivant :

sp_configure N'show advanced options', 1 
GO 
RECONFIGURE ; 
GO 
sp_configure N'Database Mail XPs', 1; 
GO 
RECONFIGURE ; 
GO
 

 

 
 
 

Précédent Copyright © 2010, yevol.com Suivant