2009-09-01 9 views
0

J'exécute une procédure stockée et j'ai reçu une erreur indiquant 'Erreur Erreur de base de données SQL Server: Erreur lors de la conversion du type de données varchar en int. "Dans sqlserver 2000. Mais lorsque j'exécute la même procédure stockée dans le serveur SQL server 2005, je ne reçois aucune erreur et le résultat est de s'affiche.erreur dans SQL Server 2000 mais pas dans SqlServer 2005

toute personne est d'avoir idée au sujet de ce ?? S'il vous plaît ne me aider.

Merci Rupa

+0

Est-ce les données et/ou paramètres que vous utilisez * exactement * la même chose dans les deux bases de données? – LukeH

+0

yes..i ont exécuté la même procédure dans sqlserver 2000 et 2005. –

+0

Pouvez-vous tracer le converti? – CruelIO

Répondre

1

cela pourrait dépendre des données et non d'un problème de 2000 par rapport à 2005. Il est plus probable que les lignes sur lesquelles travaille la requête sont différents dans les deux bases de données. Commencer à commenter l'élément de la requête qui échoue et l'exécuter à chaque fois, jusqu'à ce que cela fonctionne. La dernière chose que vous avez commentée est l'endroit où le problème se produit. alors regarde la tata liée à cette partie.

+0

+1, je suis d'accord. C'est ce que je voulais dire dans mon commentaire ci-dessus. – LukeH

1

Il pourrait dependt sur la executionplan la procédure stockée utilise

Un exemple

Le tableau MYTABLE ressemble à ceci

 Mytable  
    __________ 
    |Val|type | 
    ----------- 
    |'1'|'num'| 
    |'2'|'num'| 
    |'a'|'chr'| 
    |'b'|'chr'| 
    |'8'|'num'| 

Mes sélectionner se présente comme suit

select convert (int , Val) de Mytable où type = 'num'

Cela peut échouer en fonction du plan d'exécution. Vous pouvez effectivement avoir une procédure stockée qui fonctionne très bien pendant un certain temps, mais échoue soudainement seulement à cause de la quantité de lignes int votre table ont changé et la SQLServer a créé une nouvelle executionplan

Voici un autre exemple: http://www.windows-tech.info/15/a0fc276997660092.php

Questions connexes