2009-10-09 20 views
6

Quando la generazione di codice/scripts,Perché SQL Server Management Studio genera codice utilizzando parentesi quadre?

  1. Perché SQL Server Management Studio generare il codice usando le parentesi quadre e non doppi apici?

    SELECT [NOME] FROM [TABLE]

  2. e c'è un modo (impostazione/voce di registro) per configurarlo per utilizzare le virgolette doppie (lo standard) invece?

    SELEZIONA "NAME" DA "TABLE"

Questo è molto caratteristica MSFT-ty, dato che tutta la loro documentazione ora indicano le virgolette doppie (vedi this)

+0

Si dice "virgolette [sono] (lo standard)". È uno standard ANSI? –

+0

sì, è lo standard ANSI – van

+0

"L'utilizzo delle parentesi [e] per delimitare gli identificatori non è influenzato dall'impostazione QUOTED_IDENTIFIER." Penso che l'eredità di Sybase e i suoi comportamenti siano il motivo per cui è diventato necessario. – shawnt00

risposta

3

perché sql-server (studio di gestione) genera codice usando parentesi quadre?

SELECT [NOME] FROM [TABLE]

di far fronte con i nomi che sono parole riservate o che contengono spazi bianchi.

Le parentesi quadre sono il modo nativo per eseguire il wrapping degli identificativi. Essi sono asimmetriche e possono essere senza pari, mentre le citazioni sono simmetrici e devono essere abbinate (o raddoppiato includerli nel nome):

CREATE TABLE [[test] (id INT) 
CREATE TABLE ["test] (id INT) 
DROP TABLE "[test" 
DROP TABLE """test" 
+0

buon punto, lo so. Dovrei cambiare la formulazione della mia domanda: intendevo perché parentesi quadra e non virgolette. sistemerà. – van

+0

Anche se copre solo metà della mia domanda, accetterò la risposta in quanto l'assimmetrico è davvero un buon argomento. – van

2

Il link spiega il motivo per cui, almeno per me. Le parentesi non stanno fissando-dipendente, ma la validità di "dipende dalla impostazione QUOTED_IDENTIFIER.

1

Per rispondere l'altra metà della tua domanda, c'è una soluzione in SQL Server Management Studio con il Sostituisci tutto di comando (Ctrl + H ):

  • Trova: [\[\]]
  • Sostituire con: "
  • controllare "Usa:" e selezionare "espressioni regolari"
  • Premere il tasto "Sostituisci tutto"

avere in mente che questo sarà anche sostituire le occorrenze di staffe nel tuo commento.

Problemi correlati