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.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
A ALTER TABLE utasítással oszlopokat vehet fel, módosíthat vagy távolíthat el.
Remarks
CONTROL jelenlegi és előzménytáblákra vonatkozó engedély szükséges az időbeli tábla sémájának módosításához.
Egy ALTER TABLE művelet során a rendszer sémazárolást tart mindkét táblán.
A megadott sémamódosítást a rendszer megfelelően propagálja az előzménytáblába (a változás típusától függően).
XML- vagy ALAPÉRTELMEZETT értékekkel rendelkező varchar(max), nvarchar(max)és varbinary(max) oszlopok hozzáadása az SQL Server összes kiadásának adatmódosítási művelete.
Ha az oszlop hozzáadása után a sorméret túllépi a sorméret korlátját, az új oszlopok nem vehetők fel online.
Miután kiterjesztett egy táblát egy új NOT NULL oszlopgal, érdemes lehet elvetni az alapértelmezett korlátozást az előzménytáblán, mivel a rendszer automatikusan kitölti a tábla összes oszlopát.
Az online beállítás (WITH (ONLINE = ON) nincs hatással a ALTER TABLE ALTER COLUMN időbeli tábláira.
ALTER oszlop nem online állapotban történik, függetlenül attól, hogy melyik érték lett megadva ONLINE beállításhoz.
A ALTER COLUMN használatával módosíthatja az időszakoszlopok IsHidden tulajdonságát.
A következő sémamódosításokhoz nem használhatja a direkt ALTER-t. Az ilyen típusú módosításokhoz állítsa be a SYSTEM_VERSIONING = OFF.
- Számított oszlop hozzáadása
-
IDENTITYoszlop hozzáadása -
SPARSEoszlop hozzáadása vagy egy meglévő oszlop módosításaSPARSEjelölésűre, amikor az előzménytáblázatDATA_COMPRESSION = PAGEvagyDATA_COMPRESSION = ROWértékre van állítva, ami az előzménytáblázat alapértelmezett beállítása. -
COLUMN_SEThozzáadása -
ROWGUIDCOLoszlop hozzáadása vagy a meglévő oszlopROWGUIDCOL-re módosítása -
NULLoszlop módosításaNOT NULL, ha az oszlop null értékeket tartalmaz az aktuális vagy az előzménytáblában
Examples
A. Temporális tábla sémájának módosítása
Íme néhány példa a temporális tábla sémájának módosítására.
ALTER TABLE dbo.Department
ALTER COLUMN DeptName varchar(100);
ALTER TABLE dbo.Department
ADD WebAddress nvarchar(255) NOT NULL
CONSTRAINT DF_WebAddress DEFAULT 'www.example.com';
ALTER TABLE dbo.Department
ADD TempColumn INT;
GO
ALTER TABLE dbo.Department
DROP COLUMN TempColumn;
B. Időszak-oszlopok hozzáadása a HIDDEN jelölővel
ALTER TABLE dbo.Department
ALTER COLUMN ValidFrom ADD HIDDEN;
ALTER TABLE dbo.Department
ALTER COLUMN ValidTo ADD HIDDEN;
A ALTER COLUMN <period_column> DROP HIDDEN használatával törölheti a rejtett jelzőt egy pontoszlopon.
C. A séma módosítása a SYSTEM_VERSIONING funkció kikapcsolásával
Az alábbi példa bemutatja a séma módosítását, ahol a SYSTEM_VERSIONING = OFF beállítása továbbra is kötelező (IDENTITY oszlop hozzáadása). Ez a példa letiltja az adatkonzisztencia-ellenőrzést. Ez az ellenőrzés szükségtelen, ha a séma módosítása egy tranzakción belül történik, mivel nem fordulhat elő egyidejű adatmódosítás.
BEGIN TRANSACTION
ALTER TABLE [dbo].[CompanyLocation] SET (SYSTEM_VERSIONING = OFF);
ALTER TABLE [CompanyLocation] ADD Cntr INT IDENTITY (1, 1);
ALTER TABLE [dbo].[CompanyLocationHistory]
ADD Cntr INT NOT NULL
CONSTRAINT DF_Cntr DEFAULT 0;
ALTER TABLE [dbo].[CompanyLocation] SET
(
SYSTEM_VERSIONING = ON
(HISTORY_TABLE = [dbo].[CompanyLocationHistory])
);
COMMIT;
Kapcsolódó tartalom
- Temporális táblák
- Kezdje el a rendszerverziójú temporális táblák használatát
- Az előzményadatok megőrzésének kezelése rendszerverziójú időbeli táblákban
- rendszerverziójú időtáblák memóriaoptimalizált táblákkal
- ALTER TABLE (Transact-SQL)
- Rendszerverziójú temporális tábla létrehozása
- Adatok módosítása rendszerverziójú temporális táblában
- Adatok lekérdezése rendszerverziójú temporális táblában
- Rendszerverziózás leállítása egy rendszer által verzionált temporális táblán