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 :

Comment céer une SP qui crée une SP dans une db


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut Comment céer une SP qui crée une SP dans une db
    Bonjour,
    Je cherche mais je ne trouve pas une manière de faire pour créer une stored procedure qui crée une stored procédure dans une autre base de données que la db courante.


    Example
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use master
    go
    declare @sSP varchar(max)
    set @sSP ='use AdventureWorks; proc getTest as select db_name();'
    EXEC(@sSP)
    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'aimerais bien connaître le besoin qui justifie ça....

    Regarde peut-être en utilisant l'option user de EXECUTE :
    http://msdn.microsoft.com/en-us/libr...SQL.90%29.aspx

    Regarde aussi ces documents - j'ai pas approfondi :
    http://msdn.microsoft.com/en-us/libr...SQL.90%29.aspx
    http://msdn.microsoft.com/en-us/libr...SQL.90%29.aspx

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 755
    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 755
    Points : 52 530
    Points
    52 530
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    USE master;
    DECLARE @SQL VARCHAR(max);
    SET @SQL = 'USE tempdb; DECLARE @SQL VARCHAR(max);SET @SQL = ''CREATE PROCEDURE dbo.P_MA_PROC AS SELECT * FROM INFORMATION_SCHEMA.ROUTINES;''EXEC (@SQL);';
    EXEC (@SQL);
    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/ * * * * *

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    C'est pour créer des db automatiquement avec SP aux lieux d'utiliser OSQL.

    Exemple: un client passe un contrat avec nous, il faut lui créer une db sur notre système avec sa structure de base, pour différentes raison (politique), ses données doivent être séparées (> 10 Millions, 30 tables ,50 SPs, 15 Fct..).

    L’objectif est de simplifier et évité les commande xp_cmd pour une question de sécurité.

    Merci de votre aide

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    Par contre si il existe du clonage de db. Ça peut être vraiment utile.

    Merci

  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 755
    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 755
    Points : 52 530
    Points
    52 530
    Billets dans le blog
    5
    Par défaut
    1) au lieu de faire n base, faites en une seule avec comme directive de créer n schémas SQL et pour chaque schéma SQL de lui mettre un filegroup.

    Seul inconvénient : la sauvegarde....

    2) n base => 2 * n descripteurs de fichiers ouverts (mini), si trop nombreuses alors ça peut écrouler le système (à partir de 10 en exploit, ça devient notable, à 100 c'est pas terrible !)

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

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    Très bonne idée.Mais comment peut on faire pour attaché un filegroups a un schéma automatiquement lors de la création d'une table ou doit-on le faire par design.... et pour la sauvegarde on utlise litespeed ca devrait pas poser de problème.

    Encore une question, on utilise des partitions de tables par année qui atteignent chacune +- 20 Gig. on travaille sur 20 ans, ces 20 fichiers sont mis dans 5 disks physiquement différent et distribués pour obtenir des ressources équilibré entre la lecture et écriture mesuré grâce a l'outil performance de Windows 2008. Est-ce une bonne méthode/approche ?

    Encore un grand merci

  8. #8
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Citation Envoyé par SQLPro
    créer n schémas SQL et pour chaque schéma SQL de lui mettre un filegroup
    Je n'aime pas bien lier directement des objets logiques à des objets physiques, mais ici l'idée est plutôt alléchante.
    En revanche je ne vois pas d'autre possibilité qu'un trigger DDL pour créer les nouvelles tables sur le filegroup qui convient.
    Si tu as une alternative, je crois qu'en faire un billet ne serait pas une perte de temps

    Citation Envoyé par zoltix
    et pour la sauvegarde on utlise litespeed ca devrait pas poser de problème.
    Je pense que SQLPro parle plutôt du cas de très grosses bases de données, ou cela peut alors devenir un problème.
    En revanche je ne vois plus l'utilité d'utiliser LiteSpeed avec SQL Server 2008 (si c'est la version que vous utilisez), puisque cette version introduit la compression native des fichiers de sauvegardes ...

    Citation Envoyé par zoltix
    on utilise des partitions de tables par année qui atteignent chacune +- 20 Gig. on travaille sur 20 ans, ces 20 fichiers sont mis dans 5 disks physiquement différent et distribués pour obtenir des ressources équilibré entre la lecture et écriture mesuré grâce a l'outil performance de Windows 2008. Est-ce une bonne méthode/approche ?
    A priori on peut dire que oui, puisqu'il y a de fortes chances que ce soit les données de ces derniers mois qui soient le plus consultées.
    Encore faut-il que vous requêtes filtrent toutes sur l'année

    @++

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    grand merci pour vos réponses. Et je vous tiens informé du trigger ou de l'attachement automatique d'un objet.

    A+

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/12/2014, 00h02
  2. Réponses: 5
    Dernier message: 27/04/2010, 14h55
  3. Réponses: 2
    Dernier message: 29/09/2009, 15h33
  4. Réponses: 2
    Dernier message: 26/11/2006, 10h51

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