Bonjour,

J'ai une base de données où certains champ sont char. Je dois convertir tous les champs de type char en nvarchar, je pensais executer le script ci-dessous

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
26
27
28
29
30
31
32
33
34
 
begin transaction
 
declare migration_char_en_varchar CURSOR
  for
    SELECT TABLE_NAME,
    COLUMN_NAME AS CHAMP, 
    CHARACTER_MAXIMUM_LENGTH AS LONGUEUR 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE 
    DATA_TYPE  LIKE 'CHAR%'
        AND  TABLE_NAME LIKE 'TMAT%'
        ORDER BY TABLE_NAME, ORDINAL_POSITION
 
open migration_char_en_varchar
 
declare @TABLE_NAME nvarchar(30)
declare @CHAMP nvarchar(30)
declare @LONGUEUR numeric(5)
 
fetch next from  migration_char_en_varchar into @TABLE_NAME,@CHAMP,@LONGUEUR
while @@fetch_status = 0
begin
 
 alter table @TABLE_NAME alter column @CHAMP nvarchar(@LONGUEUR) 
 
 fetch next from  migration_char_en_varchar into @TABLE_NAME,@CHAMP,@LONGUEUR
end
 
CLOSE migration_char_en_varchar 
DEALLOCATE migration_char_en_varchar 
go
 
commit
Mais je me retrouve avec le message suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Serveur : Msg 170, Niveau 15, État 1, Ligne 24
Ligne 24 : Syntaxe incorrecte vers '@TABLE_NAME'.
Je ne comprends d'où peut venir l'erreur

quelqu'un aurait il une idée ?

Merci pour vos réponses