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

Développement SQL Server Discussion :

perdu dans sql server express 2005 [Fait]


Sujet :

Développement SQL Server

  1. #1
    Membre habitué Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Points : 133
    Points
    133
    Par défaut perdu dans sql server express 2005
    Bonjour à tous,

    alors je suis un gros noob sur sql server je travaille sur Oracle habituellement et j'avoue que je suis un peu perdu. j'ai fait un peu de sql server 2000 en formation mais ça a l'air d'avoir bien changé. Bon j'ai une application web en asp.net C# et je cherche à faire des fonctions et procédures stockées sur mon sql server. Normal me direz vous. Oui mais moi je suis habitué aux packages et la je n'en vois pas ? Cela veut-il dire que les développeur microsoft mettent toutes leurs requêtes en vrac dans un dossier ? bref pourquoi pas mais je ne comprend pas bien l'interaction avec le site web. Déjà lorsque j'initialise mon sqlcommand, je lui défini un commandType de type "STORED_PROCEDURE" mais je fais appel à une fonction, est-ce la bonne méthode ? Après je vois qu'il y a des fonctions SQL server qui retourne des tables mais dans le site web à quoi ce type correspond ?? un datatable, un dataset ? Enfin tout çà n'est pas très clair je suis un peu perdu. J'ai bien sur cherché sur le net mais je n'ai trouvé des infos que pour SQL Server 2000 et il n'y a pas de fonctions apparemment (que des procédures stockées).

    Quelqu'un pourrait-il m'aiguiller sur un bon tuto ???

    Merci d'avance

  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 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    La notion de package est propre à Oracle et n'existe pas dans la norme SQL, pas plus que dans SQL Server, assez respectueux des normes contrairement à Oracle.

    Une fonction (ou UDF, user Define Fonction) est un programme destiné à fournir en sortie, une valeur scalaire ou une table (SELECT).
    Les fonctions scalaires ne peuvent pas contenir :
    • de transaction,
    • de sql dynamique
    • d'ordre de mise à jour (INSERT, UPDATE, DELETE)
    • d'ordre DDL (CREATE, ALTER, DROP), DCL (GRANT REVOKE)
    • un appel à une procédure
    • l'utilisation d'un cursor

    Une fonction table peut contenir des ordres de mise à jour, mais uniquement sur la table en sortie.

    Une fonction se crée par CREATE FUNCTION et si vous le souhaitez vous pouvez la placer dans un schéma SQL particulier que vous aurez préalablement créé.

    Une procédure se créée par CREATE PROCEDURE et ses E/S sont :
    • des paramètres input et output
    • un éventuel jeu de résultat
    • une valeur de retour (code d'erreur)

    Elle peut contenir tout code SQL, y compris :
    • transaction
    • mise à jour,
    • SQL dynamique
    • cursor
    • commande DDL

    Bien entendu vous pouvez créer vos procédures dans différents schémas SQL que vous aurez préalablement créé.

    Le problème du retour de données à votre langage client est spécifique au traitement client que vous souhaitez faire...

    Et pour un tuto : http://sqlpro.developpez.com/cours/s...r/transactsql/
    La seule différence est que la version 2005 accepte désormais des UDF, triggers et fonctions, codées en .net.

    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 habitué Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Points : 133
    Points
    133
    Par défaut
    merci pour cette réponse assez claire. Maintenant je ne sais pas si le forum est bien adapté (sinon je posterais dans asp.net) mais admettons que j'utilise une fonction TABLE. Elle va me retourner une table normal... mais lorsque je l'appel dans mon appli asp.net quel est son type de retour ? Datatable ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    Une fonction table ne s'apelle pas. Elle s'utilise dans une requête.

    Démo :

    Création de la fonction table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE FUNCTION dbo.F_T_WEEK (@D DATETIME)
    RETURNS @T TABLE (JOUR_NOM VARCHAR(12), JOUR_DATE DATETIME)
    AS
     
    BEGIN
     
    SET @D = DATEADD(day, 1 - DATEPART(dw, @D), @D);
     
    INSERT INTO @T VALUES ('Lundi', @D);
    INSERT INTO @T VALUES ('Mardi', DATEADD(day, 1, @D));
    INSERT INTO @T VALUES ('Mercredi', DATEADD(day, 2, @D));
    INSERT INTO @T VALUES ('Jeudi', DATEADD(day, 3, @D));
    INSERT INTO @T VALUES ('Vendredi', DATEADD(day, 4, @D));
    INSERT INTO @T VALUES ('Samedi', DATEADD(day, 5, @D));
    INSERT INTO @T VALUES ('Dimanche', DATEADD(day, 6, @D)) ; 
     
    RETURN
     
    END
    Utilisation de la fonction table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM   dbo.F_T_WEEK('20080917')
    C'est donc à une requête SELECT que vous devez avoir à faire !

    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/ * * * * *

  5. #5
    Membre habitué Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Points : 133
    Points
    133
    Par défaut
    OK je comprend un peu mieux. Je pense qu'il vaut mieux faire une Procédure Stockée alors. Je vais surement devoir allé investir dans un petit livre quand même...

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    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 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    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/ * * * * *

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2009, 17h28
  2. Sql Server Express 2005
    Par rahaouin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/03/2006, 14h43
  3. sql server express 2005 en français
    Par gock dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/01/2006, 16h03
  4. license sql server express 2005
    Par roninou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/11/2005, 16h21
  5. compatibilité Sql server express 2005 & Mondrian
    Par xikilla dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/10/2005, 14h12

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