2009-10-09 8 views
6

Beim Generieren von Code/scripts,Warum generiert SQL Server Management Studio Code in eckigen Klammern?

  1. warum eckige Klammern und nicht doppelte Anführungszeichen nicht SQL Server Management Studio generiert Code?

    SELECT [NAME] [TABELLE]

  2. und ist es eine Möglichkeit, (Einstellung/Registrierungseintrag) zu konfigurieren, dass doppelte Anführungszeichen zu verwenden (der Standard) statt?

    SELECT "NAME" FROM "TABLE"

Das ist sehr MSFT-ty-Funktion, da alle ihre Dokumentation nun die doppelten Anführungszeichen angeben (siehe this)

+0

Sie sagen "doppelte Anführungszeichen [sind] (der Standard)". Ist das ein ANSI-Standard? –

+0

Ja, es ist ANSI-Standard – van

+0

"Die Verwendung von Klammern [und] zum Abgrenzen von Bezeichnern wird von der Einstellung QUOTED_IDENTIFIER nicht beeinflusst." Ich denke, das Sybase-Erbe und seine Verhaltensweisen sind der Grund, warum dies notwendig wurde. – shawnt00

Antwort

3

Warum erzeugt SQL-Server (Management Studio) Code mit eckigen Klammern?

SELECT [NAME] [TABELLE]

mit dem Namen fertig zu werden, die Worte oder enthalten Leerzeichen reserviert sind.

Eckige Klammern sind die native Methode zum Umschließen der Bezeichner. Sie sind asymmetrisch und können unerreicht sein, während die Zitate symmetrisch sind und sollten angepasst werden (oder verdoppelt sie in den Namen aufzunehmen):

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

guten Punkt, das weiß ich. Ich sollte den Wortlaut meiner Frage ändern: Ich meinte, warum eckige Klammer und nicht doppelte Anführungszeichen. werde reparieren. – van

+0

Obwohl es nur die Hälfte meiner Frage abdeckt, werde ich die Antwort akzeptieren, da das Asymmetrische in der Tat ein sehr gutes Argument ist. – van

2

Ihr Link erklärt, warum, zumindest für mich. Die Klammern sind nicht Einstellung abhängig, aber die Gültigkeit von "hängt von der QUOTED_IDENTIFIER-Einstellung.

1

die andere Hälfte Ihrer Frage zu beantworten, gibt es eine Abhilfe, die in SQL Server Management Studio mit dem Befehl Alle ersetzen (Ctrl + H):

  • Suchen nach: [\[\]]
  • Ersetzen durch: "
  • Check "Anwendung:" und wählen Sie "Reguläre Ausdrücke"
  • Drücken Sie auf „Alle ersetzen“

im Sinn haben, dass dies auch Vorkommen von Klammern in Ihrem Kommentar ersetzen wird.

Verwandte Themen