sql >> Database teknologi >  >> RDS >> Sqlserver

Der er allerede et objekt med navnet '#columntable' i databasen

Temp-tabeller slettes ikke automatisk i slutningen af ​​en forespørgsel, kun når den aktuelle forbindelse til DB slettes, eller du eksplicit sletter dem med DROP TABLE #columntable

Test enten for eksistensen af ​​tabellen i starten af ​​forespørgslen eller slet den altid til sidst (helst begge dele)

EDIT:Som Matrin sagde i sin kommentar, er dette faktisk en parse-fejl. Du får den samme fejl, hvis du kun parser SQL'en, som når du udfører den.

For at teste det delte jeg din forespørgsel op og prøvede:

if exists (select 1 from emp where id = 6)
  create table #columntable (newcolumns varchar(100))
GO
if not exists (select 1 from emp where id = 6)
  create table #columntable (oldcolumns varchar(100))
GO

Det er parseren glad for. Interessant nok, hvis du skifter til at bruge ikke-temp-tabeller, analyserer den oprindelige forespørgsel fint (jeg er klar over de problemer, der ville skabe, jeg var bare interesseret i at finde ud af, hvorfor forespørgslen ikke ville analysere).



  1. Ingen data udtrukket fra MySQL-databasen, mens jeg kører min JSP-side

  2. Hvad betyder 'unsigned' i MySQL, og hvornår skal det bruges?

  3. forbinde to identiske tabelstrukturer med forskellige data

  4. Implementering af super-type undertype korrekt i MySQL