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

- Evénement monfial Global Azure Bootcamp (10 000 participants) Venez !! par Blog de Vincent THAVONEKHAM, Objet Direct le 01-25-2015, 16:29

- Mon Blog déplacé vers une version anglaise... www.thavo.com par Blog de Vincent THAVONEKHAM, Objet Direct le 01-25-2015, 16:25

- Localisation et globalisation ne sont pas des options par Blog de Jérémy Jeanson le 01-17-2015, 11:47

- [Clean Code] les commentaires… par Fathi Bellahcene le 01-10-2015, 17:17

- Mise à jour de Test Professional 2013 par Blog de Jérémy Jeanson le 01-10-2015, 11:32

- [Dynamics CRM] Ajouter un bouton pour déclencher un workflow ou un script (dialogue) par Christine Dubois le 01-09-2015, 14:03

- RDV aux #SharePoint Days 2015 à Casablanca les 28 et 29 janvier ! par Le blog de Patrick [MVP Office 365] le 01-06-2015, 08:41

- TFS Online, vous allez aimer vos projets par Blog de Jérémy Jeanson le 01-03-2015, 11:19

- Bon code 2015 ! par Blog de Jérémy Jeanson le 01-02-2015, 19:01

- [Dynamics CRM] Créer un contact à partir d’une signature email par Christine Dubois le 12-30-2014, 14:37