Muitas vezes utilizada para possibilitar o uso de nomes reservados pelo SQL Server, vamos ter um claro entendimento sobre esta opção no SQL Server.
A sintaxe é bem simples:
SET QUOTED_IDENTIFIER { ON | OFF }
Ou está ligado ou está desligado. Apesar de não recomendado, geralmente é utilizado para possibilitar o uso de termos reservados pelo SQL Server em nomes de objetos. Por exemplo, desejo que minha tabela se chame SELECT.
SET QUOTED_IDENTIFIER OFF GO CREATE TABLE “select”
(
“identity” INT IDENTITY NOT NULL, “order” INT NOT NULL
);
GO
Com o QUOTED_IDENTIFIER desligado não é possível e o SQL retorna um erro informando apenas erro de sintaxe. Se você configurar o QUOTED_IDENTIFIER como ON, aí funcionará e você terá uma tabela chamada SELECT.
SELECT "identity","order" FROM "select" ORDER BY "order"; GO
Por padrão, esta opção vem configurada como ON. Além disso, pode ser usada para alterar a forma como o SQL interpreta as aspas:
USE AdventureWorks2012;
CREATE TABLE dbo.Test (ID INT, String VARCHAR(30)) ;
GO
INSERT INTO dbo.Test VALUES (1, "'Texto em aspas simples'");
INSERT INTO dbo.Test VALUES (2, '''Texto em aspas simples''');
INSERT INTO dbo.Test VALUES (3, 'Texto com 2 '''' aspas simples');
INSERT INTO dbo.Test VALUES (4, '"Texto em aspas duplas"');
INSERT INTO dbo.Test VALUES (5, """Texto em aspas duplas""");
INSERT INTO dbo.Test VALUES (6, "Texto com duas """" aspas duplas");
GO SET QUOTED_IDENTIFIER ON; GO
Textos entre aspas duplas são tratados como objetos (aqueles com nomes reservados ou não):
INSERT INTO dbo."Test" VALUES (7, 'Text with a single '' quote'); GO
As aspas duplas são obrigatórias apenas para objetos com nomes reservados:
SELECT ID, String FROM dbo.Test; GO
Siga o SQL Dicas!