Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server 2008 : Passer une table à une procédure stockée, c’est enfin possible

L'une des nouveautés de SQL Server 2008 est une chose demandée par tous depuis quelques temps, comment passer une table à une procédure stockées ou à une fonction. L'implémentation de ce passage se fait à l'aide d'un type définie par l'utilisateur.

La création du type est une opération simple :

CREATE TYPE MonTypeTable
AS TABLE
(
    Id int,
    Nom varchar(50)
)

Définissez la structure que vous souhaitez pour ce type. Puis vouez n'avez qu'à créer le procédure stockées qui va l'utiliser.

CREATE PROCEDURE MaProc @param MonTypeTable READONLY
AS

    SELECT * FROM @param

GO

On utilise directement le type table dans la définition de la procédure stockée. Ne pas oublier le READONLY, le paramère n'est possible qu'en entrée de la procédure, pour renvoyez une table, il faut passer par un SELECT (cas ici avec SELECT * FROM @param).

Notez qu'il est possible avec ce type de déclarer une variable de type table tout aussi facilement.

DECLARE @var MonTypeTable

On pourra combiner tout çà dans un exemple plus complexe.

CREATE PROCEDURE MaProc @param MonTypeTable READONLY
AS
    DECLARE @var MonTypeTable

    INSERT INTO @var
    SELECT * FROM @param
GO

Pour rappel, comment faire la même chose sous les versions précédentes de SQL Server ? Sur SQL Server 2005 vous pouvez passer un argument de type XML, que vous transformerez en table à l'aide d'opérations XQuery. Au niveau de SQL server 7 et avant, on trichait avec une chaîne de caractère de type CSV a découper au début de la procédure stockée.

Cette fonctionnalité est dore et déjà disponible dans la CTP3 (CTP de Juin).

Bons arguments…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié lundi 25 juin 2007 14:15 par christian

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Implémenter sa propre logique de validation de certificats de services par Blog de Jérémy Jeanson le 03-28-2015, 13:30

- [WCF] Configuration pour publication en Release par Blog de Jérémy Jeanson le 03-26-2015, 22:54

- SQL Server Reporting Services : Comment identifier des abonnements utilisateurs pour une migration de serveur de rapport par Blog Technique de Romelard Fabrice le 03-26-2015, 10:55

- Le yOS-Tour est lancé, rendez-vous à Genève le 13 avril ! par Le blog de Patrick [MVP Office 365] le 03-25-2015, 22:58

- [ Microsoft #Azure ] Gestion des comptes, des abonnements et délégation d’administration par Le blog de Patrick [MVP Office 365] le 03-21-2015, 20:46

- Qualité de code & Indentation par Fathi Bellahcene le 03-21-2015, 16:56

- [IIS] Mais d’où sort cette configuration ? par Blog de Jérémy Jeanson le 03-21-2015, 09:27

- Avec Microsoft Office 365, la CILE travaille plus vite. par Le Blog (Vert) d'Arnaud JUND le 03-13-2015, 17:19

- SSD : Volume Impossible @ redimensionner par Blog de Jérémy Jeanson le 03-07-2015, 09:36

- Microsoft Regional Director 2.0 ! par Le blog de Patrick [MVP Office 365] le 02-23-2015, 22:10