Bonjour,

Je viens à vous car j'aimerais savoir s'il est possible de faire un "create" avec une variable?

Je m'explique...
Je dispose d'une base de données que je dois historiser annuellement dans des schémas distinct correspondant aux années. j'ai donc deux bases de données: une courante et une autre annuelle qui varie tous les ans.

Tous les ans je dois créer un nouveau schéma pour les nouvelles données. Cela doit se faire automatiquement à partir d'une procédure stockée. Donc pour cela, je dois faire un CREATE SCHEMA @annee, @annee évoluant avec le temps.

Mon problème est que lorque je parse ma PS il me renvoie l'erreur suivante:
Procedure newDatabase, Line 18 Incorrect syntax near the keyword 'SCHEMA'.
et voici le debut de ma procédure:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE PROCEDURE newDatabase(@annee datatype OUTPUT)
AS
BEGIN
 
-- création des schéma de bdd
CREATE SCHEMA [@annee]
Pour info, j'appelle ma PS à partir de ma Procédure stockée C#; ma variable est initialisée la dedans aussi:

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
22
23
24
25
 
        DateTime date = DateTime.Today;
        int annee = date.Year;
        annee = annee+1;
 
        // INSTANCIATION DE CONNEXION
 
        string stringConnexion = "string de ma connexion";
 
        try
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = stringConnexion;
 
            // INSTANCIATION DE LA COMMANDE
 
            SqlCommand storedProcedure = new SqlCommand();
 
            //LIAISON DE LA COMMANDE A LA CONNEXION
            storedProcedure.Connection = con;
 
            // PROPRIETES DE LA COMMANDE            
            storedProcedure.CommandType = CommandType.StoredProcedure;
            storedProcedure.CommandText = "newDatabase";
            storedProcedure.Parameters.AddWithValue("@anneeSchema", annee);
Est ce que vous auriez une réponse à mon problème?

Merci d'avance