Megosztás a következőn keresztül:


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 utasítást is tartalmaz, amelyek megváltoztatják az adott információk aktuális üléskezelését. A SET állításokat az alábbi táblázatban szereplő kategóriákba sorolják.

A helyi változók beállításáról a SET á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 ELŐBB A DÁTUM BEÁLLÍTÁSA

DÁTUMFORMÁTUM BEÁLLÍTÁSA
Zárolási nyilatkozatok FELKÉSZÜLJ DEADLOCK_PRIORITY

SZÜLJ LOCK_TIMEOUT
Egyéb nyilatkozatok FELKÉSZÜLJ CONCAT_NULL_YIELDS_NULL

FELKÉSZÜLÉS CURSOR_CLOSE_ON_COMMIT

SŐT FIPS_FLAGGER

FELKÉSZÜLJ IDENTITY_INSERT

HALMAZNYELV

KÉSZLET ELOLÁSOK

SŐT QUOTED_IDENTIFIER
Lekérdezésvégrehajtási utasítások ÁLLÍTÓ ARITHABORT

SET ARITHIGNORE

ÁLLÍTÓ-BEÁLLÍTÁS 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.

ÁLLÍTSD BE A NOCOUNT

NOEXEC BEÁLLÍTÁS

FELKÉSZÜLÉS NUMERIC_ROUNDABORT

BEÁLLÍTÁS CSAK PARSEALONE

SOR QUERY_GOVERNOR_COST_LIMIT

SET RESULT SET CACHING (Preview)
Megjegyzés: Ez a funkció csak Azure Synapse Analytics esetében érvényes.

SORSZÁM BEÁLLÍTÁSA

SZÖVEGMÉRET BEÁLLÍTÁSA
ISO beállítások állítások SŐT ANSI_DEFAULTS

SŐT ANSI_NULL_DFLT_OFF

SZÜLJ ANSI_NULL_DFLT_ON

SZÜLJ ANSI_NULLS

SŐT ANSI_PADDING

FELKÉSZÜLJ ANSI_WARNINGS
Statisztikai állítások ÁLLÍTSD BE AZ ERŐTERVET

FELKÉSZÜLÉS SHOWPLAN_ALL

FELKÉSZÜLÉS SHOWPLAN_TEXT

FELKÉSZÜLJ SHOWPLAN_XML

ÁLLÍTSON STATISZTIKÁKAT IO

STATISZTIKA BEÁLLÍTÁSA XML-

STATISZTIKAI PROFIL BEÁLLÍTÁSA

STATISZTIKAI IDŐ BEÁLLÍTÁSA
Tranzakciós kimutatások FELKÉSZÜLJ IMPLICIT_TRANSACTIONS

SZÜLJ REMOTE_PROC_TRANSACTIONS

TRANZAKCIÓELKÜLÖNÍTÉSI SZINT BEÁLLÍTÁSA

SŐT XACT_ABORT

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

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

    • SŐT FIPS_FLAGGER
    • KÉSZLET ELOLÁSOK
    • PARSEONLY BEÁLLÍTÁSA
    • és SET QUOTED_IDENTIFIER
  • Ha egy SET utasítás fut egy tárolt eljárásban vagy triggerben, a SET opció értéke visszaáll, miután a tárolt eljárás vagy trigger visszanyeri az irányítást. Ha egy dinamikus SQL stringben SET utasítást adsz be, amely sp_executesql vagy EXECUTE funkcióval fut, a SET opció értéke visszaáll, miután a control visszatér a dinamikus SQL stringben megadott csomagból.

  • A tárolt eljárások a végrehajtáskor megadott SET beállításokkal futnak, kivéve a SET ANSI_NULLS és a SET QUOTED_IDENTIFIER-t. A SET ANSI_NULLS vagy SET megjelölést megjelölő tárolt eljárások QUOTED_IDENTIFIER a tárolt eljárás létrehozásának idején megadott beállítást 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 úgy viselkedik, mint egy explicit SET utasítás, kivéve, hogy bejelentkezéskor történik.

  • Az ALTER DATABASE használatával állított adatbázis-beállítások 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 utasítás ON és OFF opciókat használ, bármelyiket megadhatod több SET opcióhoz.

    Megjegyzés:

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

    Például SET QUOTED_IDENTIFIER, ANSI_NULLS ON az QUOTED_IDENTIFIER és ANSI_NULLS beállítja ON-ra.

  • A SET utasítás beállításai felülírják az azonos adatbázis-opciós beállításokat, amelyeket az ALTER DATABASE használatával állítanak be. Például a SET ANSI_NULLS utasításban megadott érték felülírja az ANSI_NULLs adatbázis beállításait. 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 utasítások nem tisztelik a SET LOCK_TIMEOUT beállítást.

  • Amikor egy globális vagy gyorsító SET utasítás több beállítást állít be, a SET parancs kiadása visszaállítja az összes olyan opció korábbi beállításait, amelyeket a SET parancs érintett állapotban érint. Ha egy SET opciót, amelyet egy SET rövidítés hatása érint, a SET utasítás kiadása után beállítódik, az egyéni SET utasítás felülírja a hasonló gyorsítvány beállításokat. Egy SET rövidítés példája a SET 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ényhalmazzat (MARS) kérés egy globális állapotot oszt meg, amely tartalmazza a legfrissebb session SET opció beállításokat. Amikor minden kérés végrehajtódik, módosíthatja a 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ókat átmásolják a globális session állapotba. Az új kérések, amelyek ugyanazon az ülés alatt hajtják végre a változást, ezeket az új SET opció beállításokat használják.

  • 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 manipulálod az indexeket, ezeket a SET opciókat ON-ra kell beállítani: ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING és ANSI_WARNINGS. Állítsd be a NUMERIC_ROUNDABORT opciót KIKAPCSOLVA.

    Ha egyiket sem állítod be a szükséges értékekre, az INSERT, UPDATE, DELETE, DBCC CHECKDB és DBCC CHECKTABLE műveletek indexelt nézeteken vagy táblázatokon a számolt oszlopokon az indexekkel meghibásodnak. 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 a SET RESULT_SET_CACHING be van kapcsolva, engedélyezi az eredménygyorsítótár funkciót a jelenlegi kliens üléshez. Result_set_caching nem kapcsolható be egy ülés alatt, ha az adatbázis szintjén ki van kapcsolva. Amikor a SET RESULT_SET_CACHING KIKAPCSOLVA, az eredményhalmaz gyorsítótárázási funkció letiltott az aktuális 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