TSQL dynamique de l'ajout de colonnes dans une procédure stockée

Salut, je suis en train d'écrire une procédure stockée grande, ce qui crée un rapport dynamique de la table, de n colonnes dont les 6 premiers sont constants, le reste dépend de quelques arguments passés à la procédure pour créer la table avec les colonnes requises.

Le problème que je rencontre est le suivant TSQL

DECLARE @columnname VARCHAR(50)
SET @columnname = 'on_' + @description

IF NOT EXISTS(SELECT * FROM syscolumns WHERE id = OBJECT_ID('reports')
       AND NAME = @columnname)
BEGIN
      ALTER TABLE reports ADD @columnname VARCHAR(50) NULL
END

J'obtiens des erreurs de syntaxe avec les @columnname dans l'instruction ALTER TABLE de code ci-dessus.

Aussi comme je suis nouveau à cela, je ne suis pas sûr si c'est la meilleure façon de le faire, ou s'il existe de meilleures façons de TSQL pour générer la nécessaire dynamique de la table.

OriginalL'auteur Grant Collins | 2009-06-05