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
SQL-adatbázis a Microsoft Fabricben
Opcióértékeket állít be a felhasználó által definiált táblákhoz.
sp_tableoption Használható a táblák soron belüli viselkedésének vezérlésére varchar(max), nvarchar(max),varbinary(max),xml, text, ntext, image, vagy nagy felhasználó által definiált típusú oszlopok esetén.
Fontos
A szöveg sorban funkciót eltávolítják az SQL Server jövőbeli verziójában. Nagy értékű adatok tárolásához javasoljuk, hogy használd a varchar(max), nvarchar(max) és varbinary(max) adattípusokat.
Transact-SQL szintaxis konvenciók
Szemantika
sp_tableoption
[ @TableNamePattern = ] N'TableNamePattern'
, [ @OptionName = ] 'OptionName'
, [ @OptionValue = ] 'OptionValue'
[ ; ]
Arguments
[ @TableNamePattern = ] N'TableNamePattern'
A felhasználó által definiált adatbázis-tábla minősített vagy nem minősített neve. @TableNamePatternnvarchar(776), alapértelmezett nélkül. Ha egy teljesen minősített táblanév, beleértve az adatbázis nevét is, az adatbázis nevének az aktuális adatbázis neve kell legyen. Több asztal táblázatbeállításai nem állíthatók be egyszerre.
[ @OptionName = ] 'OptionName'
Egy táblázat opció név. @OptionName a varchar(35), és lehet az alábbi értékek egyike.
| Érték | Description |
|---|---|
table lock on bulk load |
Ha kitiltják (az alapértelmezett), a felhasználó által definiált táblákon a tömeges terhelés során sorzárolásokat kap. Ha engedélyezve, a felhasználó által definiált táblákon lévő tömeges terhelési folyamatok tömeges frissítési zárolást kapnak. |
insert row lock |
A továbbiakban nem támogatott. Ez az opció nem befolyásolja az SQL Server zárolási viselkedését, és csak a meglévő szkriptek és eljárások kompatibilitása érdekében van beépítve. |
text in row |
Amikor OFF vagy 0 (ki van kapcsolva, az alapértelmezett mód), nem változtat a jelenlegi viselkedésen, és nincs BLOB a sorban.Amikor megadják és @OptionValue engedélyezett ON (engedélyezve), vagy egy egész érték az 24 át, 7000az új szöveg, ntext vagy kép stringek közvetlenül az adatsorban tárolódnak. Minden meglévő BLOB (bináris nagy objektum: szöveg, ntext vagy kép) adat sorformátumú szövegre változik, amikor a BLOB értéket frissítik. További információ: Megjegyzések. |
large value types out of row |
1 = varchar(max), nvarchar(max),varbinary(max),xml és nagy felhasználó által definiált típusú (UDT) oszlopok a táblázatban soron kívül vannak tárolva, 16 bájtos mutatóval a gyökérhez. 0 = varchar(max), nvarchar(max), varbinary(max), xml és nagy UDT értékek közvetlenül az adatsorban vannak tárolva, legfeljebb 8 000 bájtos határon, amíg az érték elfér a rekordba. Ha az érték nem fér be a rekordba, egy mutatót sorban tárolnak, a többi pedig a soron kívül a LOB tárolóhelyen. 0 az alapértelmezett érték. A nagy felhasználó-definiált típus (UDT) az SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik. Használja a TEXTIMAGE_ONCREATE TABLE opciót, hogy megadj egy helyet a nagy adattípusok tárolására. |
| vardecimal storage format |
Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik. Amikor TRUE, ON, vagy 1, a kijelölt tábla engedélyezett a vardecimális tárolási formátumhoz. Amikor FALSE, OFF, vagy 0, a tábla nincs engedélyezve vardecimális tárolási formátumban.
A vardecimal tárolási formátum csak akkor engedélyezhető, ha az adatbázis vardetsimalis tárolási formátumra van engedélyezve sp_db_vardecimal_storage_format használatával. Az SQL Server 2008 (10.0.x) és későbbi verziókban a vardecimal tárolási formátum elavult. Használj ROW inkább kompressziót. További információ: Adattömörítés. 0 az alapértelmezett érték. |
[ @OptionValue = ] 'OptionValue'
Megadja, hogy a @OptionName engedélyezett-e (TRUE, ON, vagy 1) vagy letiltott (FALSE, OFF, vagy 0).
@OptionValuea varchar(12), alapértelmezett nélkül.
@OptionValue az önderítésérzékeny.
A szöveg sorban opció esetén érvényes opcióértékek 0, ON, OFF, vagy egy egész szám a .247000 Ha @OptionValue , ONa korlát alapértelmezetten 256 bájt.
Kódértékek visszaadása
0 (siker) vagy hibaszám (hiba).
Megjegyzések
sp_tableoption csak a felhasználó által definiált táblák opcióértékeinek beállítására használható. A táblatulajdonságok megjelenítéséhez használd az OBJECTPROPERTY vagy query sys.tables-t .
A szöveg sorban opció sp_tableoption csak olyan táblázatokon engedélyezhető vagy kitiltható, amelyek szövegoszlopokat tartalmaznak. Ha a táblának nincs szöveges oszlopa, az SQL Server hibát ad.
Amikor a szöveg a sorban opció engedélyezett, a @OptionValue paraméter lehetővé teszi a felhasználók számára, hogy meghatározzák a BLOB maximális méretét, amelyet egy sorban tárolhatnak. Az alapértelmezett érték 256 bájt, de az értékek 24 és 7000 bájt között lehetnek.
Szöveg, ntext vagy képi láncsorok tárolódnak az adatsorban, ha a következő feltételek érvényesek:
- A sorban lévő szöveg engedélyezve van.
- A húr hossza rövidebb, mint a @OptionValue-ben meghatározott határ.
- Elég hely van az adatsorban.
Amikor a BLOB stringek az adatsorban vannak tárolva, a szöveg, ntext vagy kép stringek olvasása és írása olyan gyorsan megy, mint a karakter- és bináris stringek olvasása vagy írása. Az SQL Servernek nem kell külön oldalakhoz hozzáférnie a BLOB string olvasásához vagy írásához.
Ha egy szöveg, ntext vagy képlánc nagyobb, mint a megadott korlát vagy a sorban elérhető hely, akkor a mutatókat a sorban tárolják. A BLOB sorozatok sorban való tárolásának feltételei azonban érvényesek: Elég helynek kell lennie az adatsorban, hogy elrejtsék az mutatókat.
A táblázat sorában tárolt BLOB láncokat és mutatókat hasonlóan kezelik, mint a változó hosszúságú stringeket. Az SQL Server csak annyi bájtszámot használ, amennyi a string vagy a mutató tárolásához szükséges.
A meglévő BLOB stringek nem konvertálódnak azonnal, amikor először engedélyezik a sorban lévő szöveget. A stringeket csak akkor konvertálják, ha frissítik őket. Hasonlóképpen, ha a szöveg sorban lévő opció korlátja megnő, a már meglévő szöveg-,ntext- vagy képsorok nem konvertálódnak az új korláthoz egészen a frissítésükig.
Megjegyzés:
A szöveg sorban opció letiltása vagy a lehetőség korlátjának csökkentése minden BLOB átalakítását igényli; ezért a folyamat hosszú lehet, attól függően, hány BLOB húrt kell átalakítani. Az asztal a konvertálás során zárva van.
Egy táblaváltozó, beleértve egy olyan függvényt is, amely egy táblázatváltozót ad, automatikusan engedélyezi a szöveg sorban opciót, alapértelmezett 256-os inline limittel. Ezt az opciót nem lehet megváltoztatni.
A szöveg sorban opció támogatja a TEXTPTR, WRITETEXT, UPDATETEXT és READTEXT funkciókat. A felhasználók a SUBSTRING() funkcióval olvashatnak egy BLOB egyes részeit, de szem előtt kell tartaniuk, hogy a sorbeli szövegmutatók eltérő időtartam- és számkorlátokkal rendelkeznek, mint más szövegmutatók.
Ahhoz, hogy egy tábla a vardecimal tárolási formátumból visszaváltoztassa a normál tizedes tárolási formátumra, az adatbázisnak SIMPLE helyreállítási modellben kell lennie. A helyreállítási modell megváltoztatása megszakítja a napló láncot a biztonsági mentés céljából, ezért teljes adatbázis-mentést kell létrehoznod, miután eltávolítod a vardecimális tárolóformátumot egy táblából.
Ha egy meglévő LOB adattípus oszlopot (szöveg, ntext vagy képet) kicsi-közepes nagy értékű típusokra (varchar(max), nvarchar(max) vagy varbinary(max)) alakítasz át, és a legtöbb állítás nem hivatkozik a környezeted nagy értékű oszlopaira, fontold meg large_value_types_out_of_row1 módosítását az optimális teljesítmény érdekében. Amikor a large_value_types_out_of_row opció értékét megváltoztatják, a meglévő varchar(max), nvarchar(max), varbinary(max) és xml értékek nem kerülnek azonnal átalakulni. A húrok tárolása később változik, ahogy frissülnek. Az új értékek, amelyeket egy táblázatba helyeznek, a jelenlegi táblázat opció szerint tárolódnak. Az azonnali eredményekhez vagy készíts másolatot az adatokból, majd újratöltsd a táblát a large_value_types_out_of_row beállítás megváltoztatása után, vagy frissítsd az egyes kis- és közepes nagy értékű típusok oszlopot önmagára, hogy a karakterláncok tárolása a tábla opcióval változzon. Fontold meg, hogy a frissítés vagy újranépesítés után újraépítik az indexeket, hogy tömörítsék a táblázatot.
Permissions
A végrehajtáshoz sp_tableoptionALTER engedély szükséges az asztalon.
Példák
A. XML adatokat tárolj a soron kívül
A következő példa azt jelzi, hogy a táblázatban szereplő xml adatokat HumanResources.JobCandidate soron kívül tárolják.
USE AdventureWorks2022;
GO
EXECUTE sp_tableoption 'HumanResources.JobCandidate', 'large value types out of row', 1;
B. Enable vardecimal storage format a table
A következő példa módosítja a Production.WorkOrderRouting táblát, hogy a tizedes adattípust vardecimális tárolóformátumban tárolja.
USE master;
GO
-- The database must be enabled for vardecimal storage format
-- before a table can be enabled for vardecimal storage format
EXECUTE sp_db_vardecimal_storage_format 'AdventureWorks2022', 'ON';
GO
USE AdventureWorks2022;
GO
EXECUTE sp_tableoption 'Production.WorkOrderRouting', 'vardecimal storage format', 'ON';