我有一个奇怪的情况,当我通过SQL脚本查看数据时,我有一个值,但如果直接查看数据,我会得到另一个值。数据如何能够根据我查看它们的方式而变化
我的第一个想法是参数嗅探,但没有解决问题。除了通过存储过程获得数据之外,我没有在做任何有关价值的事情。
存储过程的示例。
CREATE PROCEDURE例如
(
@iRefProjectID INT
)
AS
- 防止参数嗅探
DECLARE @projectID诠释
SET @projectID = @iRefProjectIDSELECT iEntryType FROM table WHERE iEntryType IN (1,5,6) AND iProjectID = @projectID RETURN
GO
现在其中一个如此提取的行包含'2',当我通过SP查看时,它是'1'。它根本不应该是2!= 1 || 5 || 6.突然2变成1,然后“1”== 1.
我应该在哪里杀死这个bug。
问题
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**
稀释该行..发现了什么。这看起来像一个Join bug。
尝试完全限定select中的表server.user.table。 – 2010-10-04 12:09:25
我按照你的说法试过 - 没有改变。现在我有了dbname.dbo.table - 同样的结果,当然我在SP和我的手册上都选择了没有任何数据变化。我们正在谈论相同的标识行有两个不同的待处理值。 – DoStuffZ 2010-10-04 12:19:02
所以你发布的代码与你运行的代码不一样?我也看到这个标志也不一样,但你只能在SP中选择1列。 – gbn 2010-10-04 12:58:18