|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 52 ![]() |
Bonjour,
J'essaye de réaliser une fonction qui reçoit un paramètre table, et j'ai un message surprenant voici un exemple : Tout d'abord, créer un type Table et la fonction qui va recevoir ce type Code :
Code :
Citation:
Et sur le net, outre Microsoft qui décrit les étapes pour y parvenir complété d'un exemple ... de procédure stocké, je n'ai trouvé que ça voir la réponse de Lukasz Lysik du Oct 22 '09 at 18:42 Son exemple tel quel fonctionne, dès que je le transforme pour que la fonction retourne une table, le message revient ! Est-ce à dire qu'une fonction qui reçoit une table ne peut pas en renvoyer elle même une ? |
|||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
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 : Code :
Code :
Declare @AffListe AS dbo.tbl_ListeProrata
Code :
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. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 52 ![]() |
Bonjour elsuket, et merci de cette réponse
Citation:
En revanche, si j’exécute le code sans l'appel à la fonction tout se passe correctement, y compris un Le pb se situe vraiment à l'appel de la fonction, je suis en SQL 2008 (non R2), je vais essayer de trouver de quoi faire un essai sur R2 Citation:
Merci encore, je reviens après avoir essayé sur R2, si j'en trouve un |
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 52 ![]() |
Citation:
Je viens d'essayer sur plusieurs machines, certaines passent d'autre non, et ce n'est pas une question de version puisque sur un site, j'ai deux machines avec versions identiques (2007.100.1600.022) l'une passait, l'autre non. Plus surprenant, sur ces 2 machines, le serveur ne passait pas et l'autre -machine de dev en seven 64 - passait. J'avoue que je n'y comprends plus rien. Une histoire de paramétrage ? |
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 52 ![]() |
J'ai effectué le test sur différentes configurations
constats : > Fonction recevant une table en paramètre et renvoyant un varchar - RAS > Fonction recevant un varchar en paramètre et renvoyant une table - RAS > Fonction recevant une table en paramètre et renvoyant une table - 2008 Standard 64 (10.0.1600) NOK - 2008 Standard 64 (10.0.2573) NOK - 2008 Developper 64 (10.0.1600) OK - 2008 Standard 64 (10.0.4000) OK - 2008 Standard 32 (10.0.4064) NOK - 2008 R2 Express 32 (10.50.1617.0) OK Etonnant non ? Si quelqu'un avait une explication ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com