J'ai un cas étrange où lorsque je regarde les données à travers mes scripts SQL j'ai une valeur, mais si je regarde les données directement SELECT * FROM table
j'obtiens une autre valeur. J'ai d'abord pensé à renifler les paramètres, mais cela n'a pas résolu le problème. Je ne fais rien avec la valeur à portée de main, sauf l'obtenir avec une procédure stockée.Comment les données peuvent varier en fonction de comment je les vois
Exemple de la procédure stockée.
CREER exemple PROCEDURE
(
@iRefProjectID int
)
AS
- Empêcher renifler Paramètre
DECLARE @projectID int
SET @projectID = @iRefProjectIDSELECT iEntryType FROM table WHERE iEntryType IN (1,5,6) AND iProjectID = @projectID RETURN
GO
Maintenant, une des lignes ainsi extraites contient un '2', que lorsque je le regarde à travers le SP c'est un '1'. Il n'aurait pas dû être choisi du tout étant 2! = 1 || 5 || 6. Soudain le 2 devient 1 et ensuite "1" == 1.
Où devrais-je chercher à tuer ce bug.
Les lignes en question
SELECT * FROM table
3264427 2003-11-25 00:00:00.000 **2** Udligning til afregning F83907 100625.00
Exec SP
3264427 2003-11-25 00:00:00.000 -100625.00 Udligning til afregning F83907 **1**
Ahh .. trouvé quelque chose. Cela ressemble plutôt à un bug Join.
Essayez de qualifier complètement la table server.user.table dans la zone select. –
J'ai essayé comme vous l'avez dit - pas de changement. Maintenant, j'ai dbname.dbo.table - même résultat, bien sûr, je l'ai fait à la fois sur le SP et sur mon manuel sélectionner aucun changement de données que je vois. Nous parlons de la même ligne d'identité a 2 valeurs différentes en attente. – DoStuffZ
Le code que vous avez publié n'est donc pas le même que celui que vous utilisez? Je vois aussi que le signe est différent mais vous ne sélectionnez qu'une colonne dans le SP. – gbn