Bonjour à tous et meilleurs voeux!
Je commence la programmation sous SQL SERVER, et j'ai le programme suivant:
je dois réaliser une vue par contrat. Pour cela, je veux faire une boucle basée sur la liste de mes contrats.
1) Je crée un curseur basé sur la liste des contrats. Je mets le contrat en cours dans la variable @contrat_vue.
2) Je vérifie si la vue existe déjà. Si oui, je la supprime.
3) Je crée la nouvelle vue. Son nom est 'DR_'+@contrat_vue (SET @Nom_vue= 'DR_'+@Contrat_vue)
Malheureusement, je n'arrive pas à utiliser dans DROP VIEW et le CREATE VIEW ma variable @Contrat_vue.
Je n'arrive qu'à mettre un nom en dur, mais comme il s'agit d'une boucle, il faut utiliser ma variable @Contrat_vue.
Voici ci-dessous une partie de mon code. Je n'ai pas mis le CREATE VIEW.
Merci d'avance à tous ceux qui me répondront.
à +
(SQL SERVER 2005)-- Déclaration de variables
DECLARE @Contrat_vue VARCHAR(10)
DECLARE @Nom_vue VARCHAR(20)
Declare CURSEUR_VUE_DR cursor for
Select distinct contrat
From Tanalyses_entete
Open CURSEUR_VUE_DR
Fetch next from CURSEUR_VUE_DR
into @Contrat_vue
While @@fetch_status=0
Begin
SET @Nom_vue= 'DR_'+@Contrat_vue
if (select count(*) from sysobjects where name='@Nom_vue') >0
drop view @Nom_vue
PRINT 'La vue ' + @Nom_vue + ' a été supprimée.'
GO
Fetch next from CURSEUR_VUE_DR
Into @Contrat_vue
End
Close CURSEUR_VUE_DR
DeAllocate CURSEUR_VUE_DR
Partager