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 következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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).
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