2010-03-18 24 views
17

Sto leggendo un libro su SQL.Cosa significa questa query?

In quel libro, ho visto strana domanda sotto:

SELECT * into mycustomer from customer WHERE 1=2 

In questa query, ciò che è "WHERE 1 = 2"?

+0

Come tutti hanno detto di seguito, la condizione è sempre falsa. Ho visto che la tecnica utilizzata con SQL dinamico come un modo per ottenere un descrittore per le colonne nella query - ma non si dispone quindi di una clausola INTO. –

+7

Jonathan: la clausola INTO viene utilizzata per creare una nuova tabella 'mycustomer' interrogando' cliente'. In questo caso non verrà restituita alcuna riga, quindi verrà creata una tabella vuota. Questo è un idioma per copiare una struttura di tabella. – Gabe

risposta

25

Di solito utilizzato per copiare la struttura di una tabella ad in un altro, come nel tuo caso.

SELECT * INTO mycustomer FROM customer WHERE 1=2 

Questo codice crea una struttura identica a ping Customer nella nuova tabella MyCustomer. Nota che in SQL Server, i vincoli non vengono copiati; quindi probabilmente avresti bisogno di ricreare i vincoli.

+1

Sei l'unica persona che ha capito bene finora. Buon lavoro! – Gabe

+0

Ho capito! Grazie, KMan !! – zihado

3

1=2 sarà sempre false.

Questo è un modo per specificare una clausola WHERE che verrà sempre valutata su false.

Una cosa simile è WHERE 1=1 che viene sempre valutata a true.

+0

+1 per aggiungere la 'cosa simile' 1 = 1. –

0
WHERE 1=2 

È impossibile che la condizione sia sempre falsa. È un errore di battitura? Forse è per cancellare un carico di variabili? Come SELECT INTO metterà tutte le colonne in @COLUMNNAME vars

0

suo nulla, ma proprio come un injecttion SQL nel tuo caso sarà sempre false se 1 = 1 rispetto al suo vero e restituirà tutti i dati dei clienti

1

Ritorno ai vecchi tempi in cui stavo usando ASP classico, ho usato la struttura "WHERE 1 = 2" per recuperare le definizioni di colonna della tabella e non il suo contenuto. Oggigiorno ci sono modi migliori per recuperare le definizioni di colonne usando un framework di mappatura di oggetti.

La mia ipotesi è che il libro che state leggendo è leggermente datata, o il contesto di questa query è fuori luogo.

Problemi correlati