我有一個奇怪的情況,當我通過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