Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

В базата данни вече има обект с име „#columntable“.

Временните таблици не се премахват автоматично в края на заявка, само когато текущата връзка към DB е прекъсната или изрично ги изтриете с DROP TABLE #columntable

Или тествайте за съществуването на таблицата в началото на заявката, или винаги я изтривайте в края (за предпочитане и двете)

РЕДАКТИРАНЕ:Както Матрин каза в коментара си, това всъщност е грешка при анализ. Получавате същата грешка, ако анализирате само SQL, както когато го изпълнявате.

За да тествам това, разделих вашата заявка и опитах:

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

Анализаторът е доволен от това. Интересното е, че ако преминете към използване на невременни таблици, оригиналната заявка се анализира добре (осъзнавам проблемите, които биха създали, просто ми беше интересно да разбера защо заявката не може да анализира).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли недостатъци при използването на VARCHAR(MAX) в таблица?

  2. Разлика между подзаявка и корелирана подзаявка

  3. Как да се свържа с Microsoft SQL Server 2008 (MSSQL) от Matlab?

  4. Как да проверя дали клиентът има инсталиран доставчик на SQLNCLI10 при сърфиране?

  5. SQL Server 2016:Създайте вход