sql >> Database >  >> RDS >> Sqlserver

Er is al een object met de naam '#columntable' in de database

Tijdelijke tabellen worden niet automatisch verwijderd aan het einde van een query, alleen wanneer de huidige verbinding met de DB wordt verbroken of u ze expliciet verwijdert met DROP TABLE #columntable

Test of de tabel aan het begin van de query bestaat of verwijder deze altijd aan het einde (bij voorkeur beide)

EDIT:Zoals Matrin in zijn opmerking zei, is dit eigenlijk een parseerfout. U krijgt dezelfde foutmelding als u alleen de SQL ontleden als wanneer u deze uitvoert.

Om dat te testen heb ik je zoekopdracht opgesplitst en geprobeerd:

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

Daar is de parser blij mee. Interessant is dat als je overstapt naar het gebruik van niet-tijdelijke tabellen, de oorspronkelijke query prima wordt geparseerd (ik realiseer me de problemen die dit zou veroorzaken, ik was gewoon geïnteresseerd om erachter te komen waarom de query niet zou worden geparseerd).



  1. Hoe werkt NOT IN subquery met NULL-waarden?

  2. MySQL-query:invoegen als invoer duplicaat is, anders de bestaande rijwaarden bijwerken

  3. MySQL Twee velden uit twee tabellen samenvoegen tot één veld in resultatenset

  4. Rake-specificatie faalt bij de meeste tests, maar rails werken prima op Diaspora-bron