IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL SERVER 2k]Problème EXEC sp_executesql


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut [SQL SERVER 2k]Problème EXEC sp_executesql
    Bonjour,
    j'essaie de créer une fonction avec du sql dynamique en m'inspirant de sujets déjà traités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE FUNCTION EffectifCum (@d datetime)  
    RETURNS int AS  
    BEGIN 
    DECLARE @i INT, @sql NVARCHAR(1000) 
     
    SET @sql = 'SELECT @i = SUM(EFFECTIF) FROM Vue_DatesInclusion WHERE date = @d'
     
    EXEC sp_executesql
    @query = @sql,
    @params = N'@i INT OUTPUT',
    @i = @i OUTPUT
     
    return @i
    END
    J'essaie d'utiliser cette fonction dans une vue avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT     [Date], dbo.EffectifCum([Date]) AS Nb
    FROM         dbo.Vue_DatesInclusion
    me renvoie :
    Seules les fonctions et les procédures étendues peuvent être exécutées à partir d'une fonction
    Je ne comprends pas le message d'erreur.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    1) Le SQL dynamique comme tout code non déterministe est interdit dans les fonctions.
    2) une fonction ne peut apeller une procédure stockée sauf si cette procédure stockée est une procédures stockée étendue (codée en C, c'est à dire une dll)
    3) le contexte d'exécution d'un code SQL dynamique est indépendant de celui de l'apellant. Il n'y a donc AUCUN moyen de récupérer la valeur de @i

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2005] Problème avec l'instruction exec
    Par Le_21 dans le forum Développement
    Réponses: 2
    Dernier message: 23/11/2011, 23h20
  2. [SQL server 2005] Problème rolap et hierechie parent-child
    Par Thom_ dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/03/2006, 13h46
  3. [Migration] Oracle vers SQL Server 2005 - Problème de BLOB
    Par thomasrenault dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/02/2006, 10h26
  4. [SQL Server 2005] Problème d'instalation
    Par frechy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/11/2005, 18h54
  5. [SQL SERVER 2000] Problème clef étrangére
    Par Tankian dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/05/2004, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo