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 :

Procédure Stockée pour créer des TABLE dynamiquement


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Procédure Stockée pour créer des TABLE dynamiquement
    Je developpe en ce moment une application c# qui utilise un BD MS SQL et j'aimerai créé une Procédure Stockée pour créer des TABLE dynamiquement.

    En gros je veux faire quelques chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE PROCEDURE [user].[new_table]
    (
    	@table varchar(50)
    )
    AS
    CREATE TABLE @table (....)
    GO
    Quelqu'un peut m'aider??

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    C'est un peu stupide comme SP, non ?

    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
    CREATE PROCEDURE [user].[new_table]
    (   @table varchar(50))
    AS
    begin
    declare @sql varchar(60)
     
    if exists (select * from sysobjects where type='U' and name =@table)
        return -1
     
    select @sql='CREATE TABLE ' + @table +'(....)'
     
    exec sp_executesql @sql
    return @@error
    end
    GO
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je dois indexer des fichiers et créer des tables en fonction de ce que je vais trouver dedans j'ai donc besoin de créer des table dynamiquement.

    J'ai omi de préciser que j'utilise MS SQL 2000.

    Sinon j'ai un autre probleme now:

    Paramètre '@statement' de type 'ntext/nchar/nvarchar' attendu par la procédure.

    Pour info je débute en SQL et dans l'utilisation des procédure stockée

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    4 ans après mais ça peut toujours servir pour les futurs personnes qui lisent ce poste.

    Si vous avez cette erreur, c'est que votre variable recevant la requête n'est pas du type "ntext/nchar/nvarchar"

  5. #5
    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,

    Pour compléter la réponse de fadace :

    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
    20
    21
    CREATE PROCEDURE [user].[new_table](@TABLE SYSNAME)
    AS
    BEGIN
    	DECLARE @sql NVARCHAR(60)
     
    	IF EXISTS
    	(
    		SELECT *
    		FROM sysobjects
    		WHERE type='U'
    		AND name = @TABLE
    	)
        RETURN -1
     
    	SELECT @sql = N'CREATE TABLE ' + @TABLE + '(....)'
     
    	EXEC sp_executesql @sql
     
    	RETURN @@ERROR
    END
    GO
    @++

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

Discussions similaires

  1. procédure stockée pour copier des données entre 2 tables
    Par zaki_1982 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 15/02/2012, 07h50
  2. Procédure stockée pour créer une table.
    Par Khaoula.85 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 13/03/2009, 20h15
  3. procédure stocké pour backuper une table
    Par zaki_1982 dans le forum Administration
    Réponses: 4
    Dernier message: 08/01/2009, 09h14
  4. Réponses: 2
    Dernier message: 22/10/2008, 13h14
  5. Réponses: 5
    Dernier message: 06/09/2006, 13h15

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