我要挽救前任员工留给我的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'.
我对所有内容进行了三重检查,重新创建了表
bilet
,players
和rezultat
,它们已在代码中的其他位置使用,并且一切正常。据我了解SQL,ki和bil是临时表,由于它们是在同一查询中创建和访问的,因此不会有任何访问/会话问题。 最佳答案
在这种情况下,我实际上忽略了两个表:常量表ki
和变量表ki
。它们分别由ki
和@ki
引用,这是命名表的一种非常不好的方法。据我所知,在将表ki
添加到数据库后,一切都按预期开始工作。
感谢所有对此帖子发表评论的人。
关于java - 临时表的对象名称无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36779172/