Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
SQL database in Microsoft Fabric
Sütun eklemek, değiştirmek veya kaldırmak için ALTER TABLE deyimini kullanın.
Remarks
Zaman tablosunun şemasını değiştirmek için güncel ve geçmiş tablolarında izin almanız gerekir CONTROL .
Bir ALTER TABLE işlemi sırasında sistem her iki tabloda da şema kilidi tutar.
Database Engine, değişiklik türüne bağlı olarak şema değişikliğini geçmiş tablosuna iletir.
varchar(max), nvarchar(max), varbinary(max) veya xml sütunlarının varsayılan olarak eklenmesi, SQL Server'ın tüm sürümlerinde veri güncelleme işlemidir.
Bir sütun ekledikten sonra satır boyutu sınırını aşarsa, çevrimiçi yeni sütun ekleyemezsiniz.
Tabloyu yeni bir NOT NULL sütunuyla genişlettikten sonra, sistem bu tablodaki tüm sütunları otomatik olarak doldurduğundan, geçmiş tablosundaki varsayılan kısıtlamayı düşürmeyi düşünebilirsiniz.
Çevrimiçi seçeneğin (WITH (ONLINE = ON) zamansal tablolarla ALTER TABLE ALTER COLUMN üzerinde hiçbir etkisi yoktur.
ALTER sütun işlemi, ONLINE seçeneği için hangi değeri belirtirseniz belirtin, çevrimiçi olarak çalışmaz.
Dönem sütunlarının ALTER COLUMN özelliğini değiştirmek için IsHidden kullanabilirsiniz.
Aşağıdaki şema değişiklikleri için doğrudan ALTER kullanamazsınız. Bu tür değişiklikler için SYSTEM_VERSIONING = OFFayarlayın.
- Hesaplanan sütun ekleme
-
IDENTITYsütunu ekleme - Bir
SPARSEsütunu eklemek veya mevcut bir sütunuSPARSEolarak değiştirmek; geçmiş tablosu, geçmiş tablosu için varsayılan ayar olanDATA_COMPRESSION = PAGEya daDATA_COMPRESSION = ROWolarak ayarlandığında. -
COLUMN_SETekleme - Bir
ROWGUIDCOLsütun ekleme veya mevcut bir sütunuROWGUIDCOLolarak değiştirme - Geçerli veya geçmiş tablosunda sütun null değerler içeriyorsa,
NULLsütunuNOT NULLolarak değiştirilecektir.
Examples
A. Zamana bağlı tablonun şemasını değiştirme
İşte zaman tablosunun şemasını değiştiren bazı örnekler.
ALTER TABLE dbo.Department
ALTER COLUMN DeptName VARCHAR (100);
ALTER TABLE dbo.Department
ADD WebAddress NVARCHAR (255)
CONSTRAINT DF_WebAddress DEFAULT 'www.example.com' NOT NULL;
ALTER TABLE dbo.Department
ADD TempColumn INT;
GO
ALTER TABLE dbo.Department
DROP COLUMN TempColumn;
B. HIDDEN bayrağını kullanarak dönem sütunları ekle
ALTER TABLE dbo.Department
ALTER COLUMN ValidFrom ADD HIDDEN;
ALTER TABLE dbo.Department
ALTER COLUMN ValidTo ADD HIDDEN;
Dönem sütunundaki gizli bayrağı kaldırmak için ALTER COLUMN <period_column> DROP HIDDEN kullanabilirsiniz.
C. SYSTEM_VERSIONING off olarak ayarlanmış şemayı değiştirme
Aşağıdaki örnek, hala ayarlamanız SYSTEM_VERSIONING = OFF gerektiğinde şemayı nasıl değiştireceğinizi (örneğin bir IDENTITY sütun eklemek) gösterir. Bu örnek, veri tutarlılığı denetimini devre dışı bırakır. Bu kontrol bir işlem içinde şema değişikliği yaptığınızda gereksizdir, çünkü eşzamanlı veri değişiklikleri olmaz.
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
CONSTRAINT DF_Cntr DEFAULT 0 NOT NULL;
ALTER TABLE [dbo].[CompanyLocation]
SET (
SYSTEM_VERSIONING = ON
(HISTORY_TABLE = [dbo].[CompanyLocationHistory])
);
COMMIT TRANSACTION;
İlgili içerik
- Zamansal tablolar
- Sistem sürümüne sahip zamana bağlı tabloları kullanmaya başlama
- Sistem sürümündeki zamana bağlı tablolarda geçmiş verileri saklamayı yönetme
- Bellek için optimize edilmiş tablolarla sistem sürümlemesi yapılmış zamansal tablolar
- ALTER TABLE (Transact-SQL)
- Sistem versiyonlu geçici bir tablo oluşturma
- Sistem sürümüne sahip bir zamana bağlı tablodaki verileri değiştirme
- Sistem sürümüne sahip bir zamana bağlı tablodaki verileri sorgulama
- Sistem sürümüne sahip bir zamana bağlı tabloda sistem sürümü oluşturmayı durdurma