Bonjour,
Je viens de faire le test sur mon instance SQL Server 2008 R2, et en fait votre erreur n'est pas dans le code mais dans la façon dont vous l'exécutez manuellement.
Vous avez dû exécuter :
1 2 3 4 5 6 7 8 9 10 11
|
CREATE TABLE #Tata
( IdTata int NOT NULL,
Montant money NULL
)
INSERT INTO #Tata Values( 1, 158.10)
INSERT INTO #Tata Values( 2, 780.5)
INSERT INTO #Tata Values( 3, 980.25)
INSERT INTO #Tata Values( 4, 1980.25)
INSERT INTO #Tata Values( 5, 1245) |
Puis :
Declare @AffListe AS dbo.tbl_ListeProrata
comme un instruction seule, en la surlignant et en l'exécutant. Puis :
1 2 3 4 5
| INSERT INTO @AffListe (Id,Montant)
SELECT Id = convert(varchar(255),IdTata), Montant = Montant FROM #Tata
SELECT *
FROM dbo.fn_Prorata(@AffListe) |
Ce qui fait que la variable @AffListe n'existe plus : elle n'a d'existence que pour la durée du lot de requêtes que vous soumettez.
En outre je ne vous conseille pas d'utiliser le type de données money, qui produit des erreurs de calculs bien connues.
Utilisez le type decimal.
@++
Partager