我有一个奇怪的情况,当我通过我的SQL脚本查看数据时,我有一个值,但如果我直接查看数据SELECT * FROM table
,我会得到另一个值。
我的第一个想法是参数嗅探,但这并没有解决问题。除了使用存储过程获取它之外,我没有对手头的值做任何事情。
存储过程的示例。
CREATE PROCEDURE示例
(
@iRefProjectID int
)
AS
- 防止参数嗅探
DECLARE @projectID int
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。
我应该在哪里杀死这个错误。
有问题的行
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**
答案 0 :(得分:2)
没有这样的错误。
您可能在不同的架构中有2个具有相同名称的表。示例:dbo.table
和[DOMAIN\User].table
最佳做法是始终限定对象以避免错误的架构解析。
还有其他选项,例如: