Frage

Mir ist aufgefallen, dass Visual Studio 2008 Spaltennamen in SQL in eckige Klammern setzt.Bieten die Klammern einen Vorteil?Wenn ich T-SQL von Hand programmiere, habe ich mich nie darum gekümmert.

Beispiel:Visual Studio:SELECT [Spalte1], [Spalte2] usw.

Mein eigener Weg:SELECT Spalte1, Spalte2 usw.

War es hilfreich?

Lösung

Die Klammern sind erforderlich, wenn Sie Schlüsselwörter oder Sonderzeichen in den Spaltennamen oder Bezeichnern verwenden.Sie könnten eine Spalte benennen [First Name] (mit einem Leerzeichen) – aber dann müssten Sie jedes Mal Klammern verwenden, wenn Sie auf diese Spalte verweisen.

Die neueren Tools fügen sie überall hinzu, nur für den Fall oder aus Konsistenzgründen.

Andere Tipps

Sie sind praktisch, wenn Ihre Spalten dieselben Namen wie SQL-Schlüsselwörter haben oder Leerzeichen enthalten.

Beispiel:

create table test ( id int, user varchar(20) )

Ach nein!Falsche Syntax in der Nähe des Schlüsselworts „Benutzer“.Aber dieses:

create table test ( id int, [user] varchar(20) )

Funktioniert gut.

Sie sind nützlich, wenn Sie (aus irgendeinem Grund) beispielsweise Spaltennamen mit bestimmten Zeichen verwenden.

Select First Name From People

würde nicht funktionieren, aber das Setzen von eckigen Klammern um den Spaltennamen würde funktionieren

Select [First Name] From People

Kurz gesagt handelt es sich um eine Möglichkeit, einen Objektnamen explizit zu deklarieren.Spalte, Tabelle, Datenbank, Benutzer oder Server.

Spaltennamen können Zeichen und reservierte Wörter enthalten, die die Abfrageausführungs-Engine verwirren. Daher sollten Sie die Spaltennamen stets in Klammern setzen, um dies zu verhindern.Ich schätze, das ist einfacher, als nach einem Problem zu suchen und es dann zu beheben.

Die Klammern können verwendet werden, wenn Spaltennamen reservierte Wörter sind.

Wenn Sie die SQL-Anweisung programmgesteuert aus einer Sammlung von Spaltennamen generieren, die Sie nicht kontrollieren, können Sie Probleme vermeiden, indem Sie immer die Klammern verwenden.

Darüber hinaus enthalten einige SharePoint -Datenbanken Bindestriche in ihren Namen.Durch die Verwendung von eckigen Klammern in SQL-Anweisungen können die Namen korrekt analysiert werden.

Ich glaube, es fügt sie dort aus Gründen der Konsistenz hinzu ...Sie sind nur erforderlich, wenn der Spaltenname ein Leerzeichen oder ein Sonderzeichen enthält. Es ist jedoch sinnvoller, sie immer einzuschließen, wenn die IDE SQL generiert.

Obwohl Microsoft einer Namenskonvention folgt, die die Verwendung reservierter Wörter vermeidet, fügt Microsoft neue reservierte Wörter hinzu.Durch die Verwendung von Klammern kann Ihr Code auf eine neue SQL Server-Version aktualisiert werden, ohne dass Sie zunächst die neu reservierten Wörter von Microsoft aus Ihrem Client-Code heraus bearbeiten müssen.Diese Bearbeitung kann ein erhebliches Problem darstellen.Dies kann dazu führen, dass Ihr Projekt vorzeitig eingestellt wird....

Klammern können auch nützlich sein, wenn Sie in einem Skript „Alle ersetzen“ möchten.Wenn Ihr Stapel eine Variable namens @String und eine Spalte namens [String] enthält, können Sie die Spalte in [NewString] umbenennen, ohne @String in @NewString umzubenennen.

Während der dunklen Ära von SQL in den 1990er Jahren war dies eine bewährte Vorgehensweise, da die SQL-Designer versuchten, jedes Wort im Wörterbuch als Schlüsselwort für eine endlose Lawine neuer Funktionen hinzuzufügen, und sie nannten es den SQL3-Entwurf.

So bleibt die Vorwärtskompatibilität erhalten.

Und ich habe festgestellt, dass es noch einen weiteren netten Nebeneffekt hat: Es hilft sehr, wenn man grep bei Codeüberprüfungen und Refactoring verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top