临时表的对象名称无效

时间:2016-04-21 19:49:30

标签: java sql sql-server

我从上一位员工那里挽救了我留下的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是临时表,因为它们是在同一个查询中创建和访问的,所以不存在任何访问/会话问题。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我忽略了实际上有两个表:常量表ki和变量表ki。它们分别由ki@ki引用,这是命名表的一种非常糟糕的方式。在将表ki添加到数据库之后,就我所知,一切都按预期开始工作。

感谢所有评论该帖子的人。