Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A QUOTED_IDENTIFIER beállítás miatt SQL Server az idézőjel azonosítók és literális sztringek ISO-szabályait kell követnie. Ha kettős idézőjelekkel elválasztja az azonosítókat, használhatja Transact-SQL fenntartott kulcsszavakat, vagy olyan karaktereket is tartalmazhat, amelyeket a Transact-SQL szintaxis szabályai általában nem engedélyeznek az azonosítókban.
Transact-SQL szintaxis konvenciók
Szemantika
Szintaxis SQL Server, Azure SQL Database, kiszolgáló nélküli SQL-készlethez Azure Synapse Analytics és Microsoft Fabric.
SET QUOTED_IDENTIFIER { ON | OFF }
A Azure Synapse Analytics és a párhuzamos Data Warehouse szintaxisa.
SET QUOTED_IDENTIFIER ON
Megjegyzések
Ha az alapértelmezett értékre van állítvaSET QUOTED_IDENTIFIER, dupla idézőjelekkel ("") elválaszthatja az azonosítókat, a literálok elválasztásához pedig egyetlen idézőjelet ('') kell használnia.ON A kettős idézőjelek közé zárt összes sztring objektumazonosítóként van értelmezve. Az idézett azonosítóknak nem kell követnie az azonosítók Transact-SQL szabályait. Kulcsszavak lehetnek, és olyan karaktereket is tartalmazhatnak, amelyek nem engedélyezettek Transact-SQL azonosítókban. Ha a kettős idézőjel (") az azonosító része, két idézőjel ("") alapján jelölheti. Meg kell adnia SET QUOTED_IDENTIFIER , ON hogy mikor használ fenntartott kulcsszavakat az adatbázis objektumneveihez.
Ha SET QUOTED_IDENTIFIEROFF értékre állítja, nem idézhet azonosítókat, és az azonosítókra vonatkozó összes Transact-SQL szabályt be kell tartania. További információ: Adatbázis-azonosítók. A literálokat egyetlen vagy két idézőjellel is elválaszthatja. Ha kettős idézőjelekkel elválaszt egy literális sztringet, a sztring tartalmazhat beágyazott idézőjeleket, például aposztrófokat.
Megjegyzés:
QUOTED_IDENTIFIER nem érinti a zárójelben[ ( és ]) bezárt departált azonosítókat.
Az indexek számítási oszlopokon vagy indexelt nézeteken való létrehozásakor vagy módosításakor meg kell adnia SET QUOTED_IDENTIFIERON . Ha be van állítva SET QUOTED_IDENTIFIER a , CREATE, UPDATE, INSERTés DELETE az utasítások sikertelenek a számított oszlopokon lévő indexekkel rendelkező táblákon, vagy indexelt nézetekkel rendelkező táblákon.OFF További információért az indexelt nézetekkel és számolt oszlopokon végzett indexekkel kapcsolatos szükséges SET opcióbeállításokról lásd: A SET utasítások használatakor megfontolható tényezők.
Szűrt index létrehozásakor be kell állítania SET QUOTED_IDENTIFIERON .
Xml-adattípus-metódusok meghívásához be kell állítania a beállításokatSET QUOTED_IDENTIFIER.ON
Az SQL Server natív ügyfél ODBC-illesztőprogramja és SQL Server natív ügyféloldali OLE DB-szolgáltató SQL Server automatikusan QUOTED_IDENTIFIERON-ra a csatlakozáskor. Ezt a beállítást ODBC-adatforrásokban, ODBC-kapcsolatattribútumokban vagy OLE DB-kapcsolattulajdonságokban konfigurálhatja. Az alapértelmezett beállítás SET QUOTED_IDENTIFIEROFF DB-Library alkalmazásokból érkező kapcsolatokra vonatkozik.
Tábla létrehozásakor a tábla metaadatai mindig úgy tárolják a QUOTED_IDENTIFIER beállítást, mintha ON a beállítást OFF a tábla létrehozásakor állítanák be.
Tárolt eljárás létrehozásakor a rendszer rögzíti és SET ANSI_NULLS használja a SET QUOTED_IDENTIFIER beállításokat a tárolt eljárás későbbi meghívásához.
Ha tárolt eljáráson belül hajtja végre a műveletet SET QUOTED_IDENTIFIER , a beállítás nem változik.
Ha be ONvan állítvaSET ANSI_DEFAULTS, QUOTED_IDENTIFIER akkor a beállítás ONértéke is .
SET QUOTED_IDENTIFIER megfelel az QUOTED_IDENTIFIERALTER DATABASE beállításának.
SET QUOTED_IDENTIFIER Transact-SQL elemzési időpontban lép érvénybe, és csak az elemzésre van hatással, nem a lekérdezésoptimalizálásra vagy a lekérdezések végrehajtására.
A felső szintű ad hoc szakasz esetén a parsing a session aktuális beállításával kezd el .QUOTED_IDENTIFIER A köteg elemzésekor a művelet minden előfordulása SET QUOTED_IDENTIFIER megváltoztatja az elemzési viselkedést attól a ponttól kezdve, és menti a beállítást a munkamenethez. Így a köteg elemzése és végrehajtása után a munkamenet QUOTED_IDENTIFIER beállítása a köteg utolsó előfordulásának SET QUOTED_IDENTIFIER megfelelően lesz beállítva.
A tárolt eljárás statikus Transact-SQL a tárolt eljárást létrehozó vagy módosító kötegre érvényes QUOTED_IDENTIFIER beállítással történik.
SET QUOTED_IDENTIFIER nincs hatása, ha a tárolt eljárás törzsében statikus Transact-SQL jelenik meg.
A sp_executesql vagy exec(), elemzést használó beágyazott kötegek esetében az elemzés a QUOTED_IDENTIFIER munkamenet beállításával kezdődik. Ha a beágyazott kötet egy tárolt eljárásban van, a parsing a tárolt eljárás beállításaival kezdődik QUOTED_IDENTIFIER . Ahogy a beágyazott köteg elemzése történik, bármilyen előfordulás SET QUOTED_IDENTIFIER megváltoztatja a parzálási viselkedést onnantól kezdve, de a session QUOTED_IDENTIFIER beállításai nem frissülnek.
A jelenlegi beállítás megtekintéséhez futtasd le a következő lekérdezést:
DECLARE @QUOTED_IDENTIFIER AS VARCHAR (3) = 'OFF';
IF ((256 & @@OPTIONS) = 256)
BEGIN
SET @QUOTED_IDENTIFIER = 'ON';
END
SELECT @QUOTED_IDENTIFIER AS QUOTED_IDENTIFIER;
Permissions
A nyilvános rögzített adatbázis szerepkör tagságát igényli.
Példák
A. Használd a idézőjeles azonosító beállítást és a fenntartott szó objektumneveket
Az alábbi példa azt mutatja, hogy a SET QUOTED_IDENTIFIER beállításnak meg kell lennie ON, és a táblanevekben szereplő kulcsszavaknak dupla idézőjelekben kell lenniük a fenntartott kulcsszónevekkel rendelkező objektumok létrehozásához és használatához.
SET QUOTED_IDENTIFIER OFF;
GO
-- Create statement fails.
CREATE TABLE "select"
(
"identity" INT IDENTITY NOT NULL,
"order" INT NOT NULL
);
GO
SET QUOTED_IDENTIFIER ON;
GO
-- Create statement succeeds.
CREATE TABLE "select"
(
"identity" INT IDENTITY NOT NULL,
"order" INT NOT NULL
);
GO
SELECT "identity",
"order"
FROM "select"
ORDER BY "order";
GO
DROP TABLE "SELECT";
GO
SET QUOTED_IDENTIFIER OFF;
GO
B. Használd az idézőjeles azonosító beállítást idézőjelekkel és dupla idézőjelekkel
Az alábbi példa bemutatja, hogyan használják az egy- és dupla idézőjeleket a sztringkifejezésekben SET QUOTED_IDENTIFIER a ON beállított és OFFa .
SET QUOTED_IDENTIFIER OFF;
GO
USE AdventureWorks2025;
GO
IF EXISTS (SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'Test')
DROP TABLE dbo.Test;
GO
USE AdventureWorks2025;
GO
CREATE TABLE dbo.Test
(
ID INT,
String VARCHAR (30)
);
GO
-- Literal strings can be in single or double quotation marks.
INSERT INTO dbo.Test
VALUES (1, "'Text in single quotes'");
INSERT INTO dbo.Test
VALUES (2, '''Text in single quotes''');
INSERT INTO dbo.Test
VALUES (3, 'Text with 2 '''' single quotes');
INSERT INTO dbo.Test
VALUES (4, '"Text in double quotes"');
INSERT INTO dbo.Test
VALUES (5, """Text in double quotes""");
INSERT INTO dbo.Test
VALUES (6, "Text with 2 """" double quotes");
GO
SET QUOTED_IDENTIFIER ON;
GO
-- Strings inside double quotation marks are now treated
-- as object names, so they cannot be used for literals.
INSERT INTO dbo."Test"
VALUES (7, 'Text with a single '' quote');
GO
-- Object identifiers do not have to be in double quotation marks
-- if they are not reserved keywords.
SELECT ID,
String
FROM dbo.Test;
GO
DROP TABLE dbo.Test;
GO
SET QUOTED_IDENTIFIER OFF;
GO
Itt van az eredmények összessége.
ID String
----------- ------------------------------
1 'Text in single quotes'
2 'Text in single quotes'
3 Text with 2 '' single quotes
4 "Text in double quotes"
5 "Text in double quotes"
6 Text with 2 "" double quotes
7 Text with a single ' quote
Kapcsolódó tartalom
- ADATBÁZIS LÉTREHOZÁSA
- CREATE DEFAULT (Transact-SQL)
- CREATE ELJÁRÁS (Transact-SQL)
- CREATE RULE (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- CREATE TRIGGER (Transact-SQL)
- CREATE VIEW (Transact-SQL)
- Adattípusok (Transact-SQL)
- EXECUTE (Transact-SQL)
- SELECT (Transact-SQL)
- SET-utasítások (Transact-SQL)
- SET ANSI_DEFAULTS (Transact-SQL)
- sp_rename
- Adatbázis-azonosítók