Que font les crochets dans une instruction SQL?
Par exemple, dans la déclaration:
insérer dans table1 ([nomcolonne1], nomcolonne2) valeurs (val1, val2)
De plus, que fait-il si le nom de la table est entre parenthèses?
Le [] marque la délimitation d'un identifiant. Par conséquent, si vous avez une colonne dont le nom contient des espaces tels que Order Qty, vous devez la mettre entre [], comme suit:
select [Order qty] from [Client sales]
Ils doivent également échapper aux mots-clés réservés utilisés comme identificateurs
Syntaxe non standard de Microsoft SQL Server pour les "identificateurs délimités". SQL prend en charge les délimiteurs d'identificateurs permettant aux noms de table, noms de colonne ou autres objets de métadonnées de contenir les éléments suivants:
Microsoft SQL Server utilise les crochets, mais il ne s'agit pas de la syntaxe standard utilisée par SQL pour les identificateurs délimités. Normalement, les doubles guillemets doivent être utilisés pour les délimiteurs.
Dans Microsoft SQL Server, vous pouvez activer un mode pour utiliser les guillemets standard pour les délimiteurs comme suit:
SET QUOTED_IDENTIFIER ON;
Ils sont destinés à échapper aux mots clés réservés ou aux identificateurs de colonne non valides.
CREATE TABLE test
(
[select] varchar(15)
)
INSERT INTO test VALUES('abc')
SELECT [select] FROM test
Ils vous permettent d’utiliser des mots-clés (tels que date ) dans le nom de la colonne, de la table, etc ...
Comme il s'agit d'une mauvaise pratique pour commencer, ils ne sont généralement pas inclus. Le seul endroit où vous devriez les voir utilisés est réservé aux personnes qui commencent par des requêtes SQL qui ne connaissent pas mieux. Autre que cela, ils encombrent votre requête.
Tout ce qui est entre crochets est considéré comme un identifiant unique (par exemple [machine de test]. Ceci peut être utilisé pour insérer des noms avec des espaces ou pour échapper à des mots de réserve (par exemple [ordre], [sélectionner], [groupe]).
Ce sont simplement des délimiteurs qui vous permettent de mettre des caractères spéciaux (comme des espaces) dans le nom de la colonne ou de la table , Par exemple.
insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)
si vous utilisez un nom de colonne identique à un mot clé réservé de SQL, vous pouvez le mettre entre crochets pour distinguer le nom de colonne personnalisé du mot clé réservé existant.
Lorsque vous avez des noms de table ou des noms de fichiers avec des espaces ou des tirets (-), etc., vous pouvez recevoir "Erreur systax dans la clause FROM". Utilisez des crochets [] pour résoudre ce problème.
Voir: https://msdn.Microsoft.com/en-us/library/ms175874.aspx