ALTER DATABASE (Transact-SQL)
Bir veritabanı veya dosya ve dosya gruplarını veritabanıyla ilişkili değiştirir.Ekler veya dosyaları ve dosya gruplarını veritabanından kaldırır, bir veritabanı veya dosya ve dosya gruplarını özniteliklerini değiştirir, veritabanı harmanlamadeğiştirir ve veritabanı seçeneklerini ayarlar.Veritabanı anlık görüntüleri değiştirilemez.çoğaltmailişkili veritabanı seçeneklerini değiştirmek için sp_replicationdboption.
Uzunluğu nedeniyle, alter database Sözdizimi aşağıdaki konulara ayrılmıştır:
ALTER VERİTABANI
Geçerli konu adı ve bir veritabanı harmanlama değiştirme sözdizimi sağlar.alter database dosya ve dosya grubu seçenekleri
Sözdizimi, ekleme ve veritabanından dosyaları ve dosya gruplarını kaldırma ve dosya gruplarını ve dosya özniteliklerinin değiştirilmesini sağlar.alter database set seçenekleri
alter database set seçenekleri kullanarak bir veritabanı özniteliklerini değiştirmek için bir sözdizimi sağlar.alter database veritabanı yansıtma
veritabanı yansıtmasıilgili alter database set seçenekleri için sözdizimi sağlar.alter database uyumluluk düzeyi
Veritabanı uyumluluk düzeyi için ilgili alter database set seçenekleri için sözdizimi sağlar.
Sözdizimi
ALTER DATABASE database_name
{
| MODIFY NAME = new_database_name
| COLLATE collation_name
| <file_and_filegroup_options>
| <set_database_options>
}
[;]
<file_and_filegroup_options >::=
<add_or_modify_files>::=
<filespec>::=
<add_or_modify_filegroups>::=
<filegroup_updatability_option>::=
<set_database_options>::=
<optionspec>::=
<auto_option> ::=
<change_tracking_option> ::=
<cursor_option> ::=
<database_mirroring_option> ::=
<date_correlation_optimization_option> ::=
<db_encryption_option> ::=
<db_state_option> ::=
<db_update_option> ::=
<db_user_access_option> ::=
<external_access_option> ::=
<parameterization_option> ::=
<recovery_option> ::=
<service_broker_option> ::=
<snapshot_option> ::=
<sql_option> ::=
<termination> ::=
Bağımsız değişkenler
database_name
Değiştirilecek olan veritabanının adıdır.ADI DEĞİŞTİRMEK =new_database_name
Veritabanı olarak belirtilen adla yeniden adlandırır new_database_name.HARMANLAMAcollation_name
Veritabanı için harmanlama belirtir.collation_nameWindows harmanlama adı veya bir SQL harmanlama adı olabilir.Belirtilmezse, veritabanı örnek harmanlama atanır SQL Server.Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz: HARMANLAMA (Transact-SQL).
<file_and_filegroup_options >:: =
Daha fazla bilgi için, bkz. alter database dosya ve dosya grubu seçenekleri (Transact-SQL).
<set_database_options >:: =
Daha fazla bilgi için, bkz. alter database set seçenekleri (Transact-SQL).
Açıklamalar
Bir veritabanı kaldırmak için drop database.
Bir veritabanının boyutunu azaltmak için dbcc shrinkdatabase.
alter database deyim otomatik yürütme modu (varsayılan işlem yönetimi modu) çalıştırmalısınız ve açık bir izin verilmez veya örtük işlem.Daha fazla bilgi için, bkz. Autocommit hareketleri.
De SQL Server 2005 veya daha sonra veritabanı dosyası (örneğin, çevrimiçi veya çevrimdışı), durumu saklanır veritabanı durumundan bağımsız olarakDaha fazla bilgi için, bkz. Dosya Devletleri.dosya grubu içindeki dosyalar durumunu tüm dosya grubukullanılabilirliğini belirler.Kullanılabilmesi bir dosya grubu için dosya grubu içindeki tüm dosyaları çevrimiçi olması gerekir.dosya grubu çevrimdışıysa, dosya grubu bir SQLdeyim erişim çalışırsanız bir hata ile başarısız olur. select deyimlerinin sorgu planları oluştururken, sorgu iyileştiricisi kümelenmemiş dizinleri ve çevrimdışı dosya bulunan dizin oluşturulmuş görünümler önler.Bu başarılı olması bu ifadeler sağlar.Ancak, çevrimdışı dosya grubu öbek veya kümelenmiş dizin hedef tabloiçeriyorsa, select deyimleri başarısız.Ayrıca, herhangi bir çevrimdışı dosya grubu dizinde bir tablo değiştiren herhangi bir INSERT, update veya delete deyim başarısız olur.
Bir veritabanı geri yükleme durumunda iken, çoğu alter database deyimi başarısız olur.Özel durum veritabanı yansıtması seçenekleri ayarlıyor.Bir etkin geri yükleme işlemi sırasında veya bir veritabanı geri yükleme işlemi sırasında bir veritabanı geri yükleme durumunda olabilir veya günlük dosyası bozuk yedek dosyası nedeniyle başarısız olur.Daha fazla bilgi için, bkz. SQL Server geri yükleme hataları nedeniyle zarar görmüş yedekleri tarafından yanıt.
Plan önbelleği örnek için SQL Server aşağıdaki seçeneklerden birini belirleyerek temizlenir:
ÇEVRİMDIŞI |
READ_WRITE |
ÇEVRİMİÇİ |
FILEGROUP VARSAYILAN DEĞİŞTİRME |
MODIFY_NAME |
FILEGROUP READ_WRITE DEĞİŞTİRME |
HARMANLAMA |
FILEGROUP READ_ONLY DEĞİŞTİRME |
READ_ONLY |
|
Plan önbelleği temizleniyor, yeniden derlemesinde tüm sonraki yürütme planları, neden olur ve ani bir geçici sorgu performans azalmasına neden olabilir.Her plan önbelleğinde temizlenmiş cachestore için SQL Server hata günlüğü aşağıdaki bilgi iletisini içerir: "SQL Server'% s' için temizleme cachestore yerde %d karşılaştı cachestore (planı önbellek parçası) bazı veritabanı bakım veya yeniden yapılandırma işlemleri yüzünden".Bu saat aralığında önbelleği temizlendi sürece bu ileti her beş dakikada bir günlüğe kaydedilir.
Veritabanı harmanlamayı değiştirme
Bir veritabanı farklı harmanlama uygulamadan önce aşağıdaki koşulların yerinde olduğundan emin olun:
Tek veritabanı kullanmakta olduğunuz.
Hiçbir şemaya bağlı nesnenin harmanlama veritabanı üzerinde bağlıdır.
Veritabanı, alter database veritabanı harmanlamaaçık bağlıdır, aşağıdaki nesneler olup olmadığınıdatabase_nameHARMANLA deyim edecek başarısız.SQL ServerDeğiştir eylemengelleme her nesne için bir hata iletisi döndürür:
Kullanıcı tanımlı işlevler ve ema BALAMA ile oluşturulan görünümleri.
Hesaplanan sütunlar.
DENETLEME kısıtlamaları.
Alfabe karakteri sütunlarla tablolarla dönmek tablo değerli işlevler, varsayılan veritabanı harmanlamamiras.
harmanlama veritabanı değiştiğinde olmayan-şemaya bağlı varlıklar için bağımlılık bilgileri otomatik olarak güncelleştirilir.Daha fazla bilgi için, bkz. sql bağımlılıklar anlama.
Veritabanı harmanlama değiştirme çoğaltmaları veritabanı nesneleri için tüm sistem adları arasında oluşturmaz.
Aşağıdaki ad alanları yinelenen adları değişen harmanlamaneden bir veritabanı harmanlama değiştirme hatası neden olabilir:
Yordamı, tablo, tetikleyici veya Görünüm gibi nesne adları.
Şema adları
Grup, rol veya kullanıcı ilkeleri.
Sistem ve kullanıcı tanımlı türleri gibi skalar türü adları.
Tam metin kataloğu adı.
Sütun veya parametre adları bir nesne içinde.
tablodizin adlarının.
Yeni harmanlama kaynaklanan yinelenen adları değiştirme eylem başarısız olmasına neden olur ve SQL Server yinelenen bulunduğu ad boşluğunu belirten bir hata iletisi verecektir.
Veritabanı bilgisini görüntülemek
Veritabanları, dosyaları ve filegroups hakkında bilgi dönmek için katalog görünümleri, sistem işlevlerive sistem saklı yordamları kullanabilirsiniz.Daha fazla bilgi için, bkz. Veritabanı meta veri görüntüleme.
İzinler
Veritabanı üzerinde alter izni gerektirir.
Örnekler
A.Bir veritabanının adını değiştirme
Aşağıdaki örnek adını değiştirir AdventureWorks2008R2 veritabanına Northwind.
USE master;
GO
ALTER DATABASE AdventureWorks2008R2
Modify Name = Northwind ;
GO
B.Veritabanı harmanlama değiştirme
Aşağıdaki örnek, adlı bir veritabanı oluşturur testdb ile SQL_Latin1_General_CP1_CI_As harmanlamave harmanlama değiştirir testdb veritabanına COLLATE French_CI_AI.
USE master;
GO
CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO
Ayrıca bkz.