簡體   English   中英

臨時表的對象名稱無效

[英]Invalid object name of a temp table

我正在挽救前一名員工留給我的Java代碼,我只留下源代碼本身,我不得不自己重新創建數據庫結構。 到目前為止,我完全恢復了它,但是一行總是拋出異常,我無法理解為什么。

connBeztirazh.execSQLU("declare @ki table (ID_ki int); " +
"declare @bil table (ID_bilet int); " +
"insert into ki (i1,i2,i3,i4,i5,i6) output inserted.ID_ki into @ki values ("+i1+","+i2+","+i3+","+i4+","+i5+","+i6+"); " +
"insert into bilet(ID_ki,data) output inserted.ID_bilet into @bil values ((select ID_ki from @ki),(select SYSDATETIME())); " +
"insert into rezultat (ID_players, ID_bilet) output inserted.ID_bilet values ((select ID_players from players where telnomer='"+number+"'),(select ID_bilet from @bil));", false);

該行拋出以下異常:

com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'ki'.

我三重檢查一切,我重新創建表biletplayersrezultat ,他們在代碼和一切是正常的其他地方使用。 據我所知,SQL,ki和bil是臨時表,因為它們是在同一個查詢中創建和訪問的,所以不存在任何訪問/會話問題。

在這種情況下,我忽略了實際上有兩個表:常量表ki和變量表ki 它們分別由ki@ki引用,這是命名表的一種非常糟糕的方法。 將表ki添加到數據庫后,就我所知,一切都按預期開始工作。

感謝所有評論該帖子的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM