SET Állítások (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A Transact-SQL programozási nyelv több SET állítást is tartalmaz, amelyek megváltoztatják az adott információk aktuális session kezelését. Az állítások SET az alábbi táblázatban látható kategóriákba vannak csoportozva.

A helyi változók beállításáról SET az állítással kapcsolatos információkért lásd SET @local_variable (Transact-SQL).

Kategória Kimutatások
Dátum- és időpontkijelentések SET DATEFIRST

SET DATEFORMAT
Zárolási nyilatkozatok SET DEADLOCK_PRIORITY

SET LOCK_TIMEOUT
Egyéb nyilatkozatok SET CONCAT_NULL_YIELDS_NULL

SET CURSOR_CLOSE_ON_COMMIT

SET FIPS_FLAGGER

SET IDENTITY_INSERT

SET LANGUAGE

SET OFFSETS

SET QUOTED_IDENTIFIER
Lekérdezésvégrehajtási utasítások SET ARITHABORT

SET ARITHIGNORE

SET FMTONLY
Megjegyzés: Ezt a funkciót eltávolítják az SQL Server jövőbeli verziójában. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.

SET NOCOUNT

SET NOEXEC

SET NUMERIC_ROUNDABORT

SET PARSEONLY

SET QUERY_GOVERNOR_COST_LIMIT

SET EREDMÉNY SET GYORSÍTÓTÁROZÁS (Előzetes)
Megjegyzés: Ez a funkció csak Azure Synapse Analytics esetében érvényes.

SET ROWCOUNT

SET TEXTSIZE
ISO beállítások állítások SET ANSI_DEFAULTS

SET ANSI_NULL_DFLT_OFF

SET ANSI_NULL_DFLT_ON

SET ANSI_NULLS

SET ANSI_PADDING

SET ANSI_WARNINGS
Statisztikai állítások SET FORCEPLAN

SET SHOWPLAN_ALL

SET SHOWPLAN_TEXT

SET SHOWPLAN_XML

SET STATISTICS IO

SET STATISTICS XML

SET STATISTICS PROFILE

SET STATISTICS TIME
Tranzakciós kimutatások SET IMPLICIT_TRANSACTIONS

SET REMOTE_PROC_TRANSACTIONS

SET TRANSACTION ISOLATION LEVEL

SET XACT_ABORT

Megfontolások, amikor az SET állításokat használod

  • Minden SET utasítás végrehajtáskor vagy futásidőben fut, kivéve ezeket az utasításokat, amelyek parze-időben futnak:

    • SET FIPS_FLAGGER
    • SET OFFSETS
    • SET PARSEONLY
    • és SET QUOTED_IDENTIFIER
  • Ha egy SET utasítás egy tárolt eljárásban vagy triggerben fut, az opció értéke visszaáll, miután a tárolt eljárás vagy trigger visszanyeri SET az irányítást. Ha egy dinamikus SQL stringben megadsz egy SET utasítást, amely sp_executesql vagy EXECUTE használatával fut, az opció értéke visszaáll, miután a SET control visszatér a dinamikus SQL stringben megadott batchből.

  • A tárolt eljárások a SET végrehajtáskor megadott beállításokkal futnak, kivéve SETSET ANSI_NULLS és SETSET QUOTED_IDENTIFIER. Tárolt eljárások, amelyek SETSET ANSI_NULLS a tárolt eljárás létrehozásának idején megadott beállítást határozzák meg vagy SETSET QUOTED_IDENTIFIER használják. Ha tárolt eljárásban használják, bármilyen SET beállítást figyelmen kívül hagynak.

  • A sp_configurefelhasználói beállítások lehetővé teszik a szerverszintű beállításokat, és több adatbázison is működik. Ez a beállítás is úgy viselkedik, mint egy explicit SET állítás, kivéve, hogy bejelentkezéskor történik.

  • Az adatbázis ALTER DATABASE beállításai csak az adatbázis szintjén érvényesek, és csak akkor lépnek életbe, ha kifejezetten beállították. Az adatbázis beállítások felülírják azokat az instance opciós beállításokat, amelyeket sp_configure segítségével állítanak be.

  • Ha egy SET állítás ON és OFF használatot használ, bármelyiket több SET opcióhoz is megadhatod.

    Megjegyzés:

    Ez nem vonatkozik a statisztikával SET kapcsolatos opciókra.

    Például mindkettőt SET QUOTED_IDENTIFIER, ANSI_NULLS ONQUOTED_IDENTIFIERANSI_NULLS ON-ra állítjuk.

  • SET Az állítás beállításai felülírják az azonos adatbázis-opciók beállításokat, amelyeket a használatával ALTER DATABASEállítanak be. Például egy utasításban megadott SET ANSI_NULLS érték felülírja az adatbázis beállítását ANSI_NULLs esetén. Ezenkívül egyes kapcsolati beállítások automatikusan bekapcsolódnak, amikor egy felhasználó csatlakozik egy adatbázishoz, az sp_configure felhasználói beállítások korábbi használatából eredő értékek vagy az összes ODBC és OLE/DB kapcsolatra érvényes értékek alapján.

  • Az ALTER, CREATE és DROP DATABASE kijelentések nem tisztelik a SETSET LOCK_TIMEOUT környezetet.

  • Amikor egy globális vagy gyorsítvány SET utasítás több beállítást állít be, a gyorsítvány SET kiadása visszaállítja az összes olyan opció korábbi beállításait, amelyeket a gyorsítvány SET érintett opciók érint. Ha egy SET olyan opciót, amelyet egy gyorsítvány SET utasítás érint, a rövidítés SET kiadása után beállított, az egyéni SET utasítás felülírja az összehasonlítható gyorsítvány beállításokat. Egy rövid utasítás SET példája .SETSET ANSI_DEFAULTS

  • Amikor csomagokat használnak, az adatbázis kontextust az határozza meg, hogy melyik batch a USE utasítással állít létre. A nem tervezett lekérdezések és minden más, a tárolt eljáráson kívüli és kötetben lévő utasítások öröklik az adatbázis és a USE utasítás által létrehozott kapcsolat opciós beállításait.

  • Több aktív eredményhalmazom (MARS) kérés egy globális állapotot oszt meg, amely tartalmazza a legfrissebb ülésopciós SET beállításokat. Amikor minden kérés végrehajtódik, módosíthatja az SET opciókat. A változtatások kifejezetten a kérés kontextusához kötöttek, ahol beállították, és nem érintik a többi párhuzamos MARS kéréseket. Azonban a kérés végrehajtása után az új SET opciók átmásolódnak a globális session állapotba. Az új kérések, amelyek ugyanazon ülés alatt hajtanak végre a változás után, ezeket az új SET opcióbeállításokat fogják használni.

  • Amikor egy tárolt eljárás egy csomagból vagy egy másik tárolt eljárásból fut, az az adatbázisban beállított opcióértékek alatt fut, ahol az adott eljárás található. Például, amikor a tárolt eljárás db1.dbo.sp1 hívja a tárolt eljárást db2.dbo.sp2, a tárolt eljárás sp1 a jelenlegi adatbázis kompatibilitási szint beállítása alatt fut el, míg a tárolt eljárás sp2 a jelenlegi adatbázis db2 kompatibilitási szint beállítása alatt fut.

  • Ha egy Transact-SQL utasítás olyan objektumokat érint, amelyek több adatbázisban vannak, akkor az aktuális adatbázis és a jelenlegi kapcsolati kontextus vonatkozik erre az utasításra. Ebben az esetben, ha Transact-SQL utasítás egy kötetben van, a jelenlegi kapcsolati kontextus az USE utasítás által definiált adatbázis; Ha a Transact-SQL utasítás egy tárolt eljárásban van, a kapcsolati kontextus az adatbázis, amely tartalmazza a tárolt eljárást.

  • Amikor kiszámított oszlopokon vagy indexelt nézeteken hozol létre és kezeled az indexeket, ezeket SET az opciókat ON-ra kell állítanod: ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING, , , és ANSI_WARNINGS. Állítsd ki az opciót NUMERIC_ROUNDABORT KI.

    Ha egyiket sem állítod be a szükséges értékekre, INSERT, UPDATE, DELETE, , DBCC CHECKDB és DBCC CHECKTABLE műveletek indexelt nézeteken vagy táblázatokon a számolt oszlopokon indexekkel rendelkező műveletek sikertelenné válnak. Az SQL Server hibát fog megjeleníteni, amikor felsorolja az összes hibásan beállított opciót. Az SQL Server úgy is feldolgozza a SELECT utasításokat ezeken a táblákon vagy indexelt nézeteken, mintha a kiszámított oszlopok vagy nézetek indexei nem léteznének.

  • Amikor SET RESULT_SET_CACHING be van kapcsolva, engedélyezi az eredménygyorsítótár funkciót a jelenlegi kliens ülésen. Result_set_caching nem kapcsolható be egy ülés alatt, ha az adatbázis szintjén ki van kapcsolva. Ha SET RESULT_SET_CACHING KIKAPCSOLVA, az eredményhalmaz gyorsítótárázási funkció letiltott a jelenlegi kliens ülésre. Ennek a beállításnak a megváltoztatásához közösségi szerepben való tagság szükséges. Apply to: Azure Synapse Analytics Gen2