it-swarm.com.de

[] Klammern in SQL-Anweisungen

Was machen die Klammern in einer SQL-Anweisung?

Zum Beispiel in der Anweisung: 

werte in Tabelle1 ([Spaltenname1], Spaltenname2) einfügen (Wert1, Wert2)

Was macht es auch, wenn der Tabellenname in Klammern steht?

26
Adam Lerman

Das [] markiert die Abgrenzung eines Bezeichners. Wenn Sie also eine Spalte haben, deren Name Leerzeichen wie Order Qty enthält, müssen Sie sie wie folgt mit [] einschließen:

select [Order qty] from [Client sales]

Sie dienen auch dazu, reservierten Schlüsselwörtern zu entgehen, die als Bezeichner dienen

43
albertein

Dies ist eine nicht standardmäßige Microsoft SQL Server-Syntax für "Trennzeichen". SQL unterstützt Trennzeichen für Bezeichner, damit Tabellennamen, Spaltennamen oder andere Metadatenobjekte Folgendes enthalten können:

  • SQL reservierte Wörter: "Bestellung"
  • Wörter, die Leerzeichen enthalten: "Bestellmenge"
  • Wörter, die Satzzeichen enthalten: "Order-qty"
  • Wörter mit internationalen Zeichen
  • Spaltennamen, bei denen Die Groß- und Kleinschreibung berücksichtigt wird: "Reihenfolge" vs. "Reihenfolge"

Microsoft SQL Server verwendet die eckigen Klammern. Dies ist jedoch nicht die von SQL standardmäßig für Bezeichner mit Trennzeichen verwendete Syntax. Standardmäßig sollten Anführungszeichen in doppelte Anführungszeichen gesetzt werden.

In Microsoft SQL Server können Sie einen Modus aktivieren, um standardmäßige Anführungszeichen für Trennzeichen wie folgt zu verwenden:

SET QUOTED_IDENTIFIER ON;
13
Bill Karwin

Sie dienen dazu, reservierten Schlüsselwörtern oder ungültigen Spaltenbezeichnern zu entgehen.

CREATE TABLE test
(
  [select] varchar(15)
)

INSERT INTO test VALUES('abc')

SELECT [select] FROM test
5
Jorge Ferreira

Sie ermöglichen die Verwendung von Schlüsselwörtern (z. B. date ) im Namen der Spalte, der Tabelle usw.

Da dies anfangs eine schlechte Praxis ist, sind sie im Allgemeinen nicht enthalten. Der einzige Ort, an dem Sie sie verwenden sollten, ist von Leuten, die mit SQL-Abfragen beginnen, die es nicht besser wissen. Davon abgesehen verstopfen sie nur Ihre Anfrage.

2
Ty.

Alles, was sich innerhalb der Klammern befindet, wird als ein einzelner Bezeichner betrachtet (z. B. [Testmaschine]. Dies kann verwendet werden, um Namen mit Leerzeichen zu kennzeichnen oder Reservewörter zu umgehen (z. B. [Reihenfolge], [Auswahl], [Gruppe]).

1
Orion Adrian

Sie sind lediglich Trennzeichen, mit denen Sie Sonderzeichen (wie Leerzeichen) in den Spalten- oder Tabellennamen Einfügen können, z. 

insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)
0
Darrel Miller

wenn Sie einen Spaltennamen verwenden, der mit einem reservierten Schlüsselwort in SQL identisch ist, können Sie in diesem Fall den Spaltennamen in eckige Klammern setzen, um zwischen dem benutzerdefinierten Spaltennamen und dem vorhandenen reservierten Schlüsselwort zu unterscheiden.

0
sumon

Wenn Sie Tabellennamen oder Dateinamen mit Leerzeichen oder Bindestrichen (-) usw. haben, können Sie den "Systax-Fehler in FROM-Klausel" erhalten. Verwenden Sie [] -Klammern, um dies zu lösen. 

Siehe: https://msdn.Microsoft.com/en-us/library/ms175874.aspx

0
juFo