PROBLEMA SPAZI NELLE QUERY

giovedì 19 ottobre 2006 - 18.24

Emilia Profilo | Newbie

Preannuncio che farò una statua d'oro a chi mi risolve questo problemone.

Devo fare una query in SQL, ma ho il problema che, avendo chiamato le tabelle con nomi contenenti spazi, mi da errore di sintassi, nonostante avessi inserito le parentesi quadre. Come faccio?

Il codice è:
SELECT Sum(Q.Importo) AS ImportoTotale
FROM [SELECT Importo FROM Ammortamento UNION ALL
SELECT Importo Traghetti FROM Traghetti e Trafori UNION ALL
SELECT Importo Spese FROM Spese Totali]. AS Q;

Aiutatemi, è importante!!!!

Emily

lbenaglia Profilo | Guru

>Preannuncio che farò una statua d'oro a chi mi risolve questo
>problemone.

Ciao Emily,

Ma la consegni a domicilio?

>Devo fare una query in SQL, ma ho il problema che, avendo chiamato
>le tabelle con nomi contenenti spazi, mi da errore di sintassi,
>nonostante avessi inserito le parentesi quadre. Come faccio?
>
>Il codice è:
>SELECT Sum(Q.Importo) AS ImportoTotale
>FROM [SELECT Importo FROM Ammortamento UNION ALL
>SELECT Importo Traghetti FROM Traghetti e Trafori UNION ALL
>SELECT Importo Spese FROM Spese Totali]. AS Q;

Come giustamente hai riportato, gli spazi sono caratteri non ammessi nella definizione degli oggetti.
Per ovviare a questo problema lo standard ANSI SQL-92 prevede l'utilizzo delle parentesi quadre (brakets) intorno al nome dell'oggetto, dando origine a quelli che vengono chiamati Identificatori Delimitati (Delimited Identifiers).
Vediamo come possiamo correggere il tuo esempio:

SELECT Sum(Q.Importo) AS ImportoTotale FROM ( SELECT Importo FROM Ammortamento UNION ALL SELECT [Importo Traghetti] FROM [Traghetti e Trafori] UNION ALL SELECT [Importo Spese] FROM [Spese Totali] ) AS Q;

Come vedi ho utilizzato le parentesi tonde per racchiudere la tabella derivata e le parentesi quadre per delimitare i Delimited Identifiers.
Per maggiori dettagli, consulta il seguente paragrafo dei Books Online:

"Using Identifiers"
http://msdn.microsoft.com/library/en-us/acdata/ac_8_con_03_6e9e.asp

>Aiutatemi, è importante!!!!
Fatto
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Emilia Profilo | Newbie

Grazie, ancora una volta. Sei grande!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5