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 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).
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 ONaz 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