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ı harmanlama değiştirir ve veritabanı seçeneklerini ayarlar.Veritabanı anlık görüntüleri değiştirilemez.Çoğaltma ile ilgili veritabanı seçeneklerini değiştirmek için kullanın. sp_replicationdboption.
Uzunluğu nedeniyle, ALTER DATABASE sözdizimi aşağıdaki konulara ayrılır:
alter VERİTABANI
Geçerli konu adı ve veritabanı harmanlama değiştirmek için sözdizimi sağlar.ALTER veritabanı dosyası 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 küme seçenekleri
ALTER DATABASE küme seçeneklerini kullanarak, bir veritabanının özniteliklerini değiştirmek için bir sözdizimi sağlar.DATABASE veritabanı yansıtması ALTER
Sözdizimi veritabanı yansıtması ilişkili küme seçenekleri, ALTER DATABASE sağlar.ALTER DATABASE uyumluluk düzey
ALTER DATABASE veritabanı uyumluluk düzeyleri için ilişkili küme seçenekleri için bir sözdizimi sağlar.
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 veritabanının adıdır.MODIFY NAME **=**new_database_name
Veritabanı olarak belirtilen adla yeniden adlandırır new_database_name.collation_name HARMANLA
Specifies the collation for the database.collation_name can be either a Windows collation name or a SQL collation name.Belirtilmezse, veritabanı örneğinin harmanlama atanır. SQL Server.Windows ve SQL hakkında daha fazla bilgi için harmanlama adları için bkz: (Transact-SQL) HARMANLA.
<file_and_filegroup_options >::=
Daha fazla bilgi için bkz:ALTER DATABASE dosyası ve dosya grubu seçenekleri (Transact-SQL).
<set_database_options >::=
Daha fazla bilgi için bkz:DATABASE küme seçenekleri (Transact-SQL) ALTER.
Remarks
Bir veritabanı'nı kaldırmak için kullanın. VERİTABANINI BIRAKMA.
Bir veritabanının boyutunu azaltmak için kullanın. dbcc shrinkdatabase.
ALTER DATABASE deyimini autocommit modunda (varsayılan işlem yönetim modu) çalıştırmalısınız ve açık veya örtük işlem içinde izin verilmiyor.Daha fazla bilgi için bkz:Autocommit hareketleri.
Içinde SQL Server 2005 veya daha sonra bir veritabanı durumunu (örneğin, çevrimiçi veya çevrimdışı) dosya veritabanının durumundan bağımsız olarak korunur. Daha fazla bilgi için bkz:Dosya durumlar.Bir dosya grubu içindeki dosyalar durumunu, tüm dosya grubu kullanılabilirliğini belirler.Kullanılabilir olması bir dosya grubu için tüm dosyaları içindeki dosya grubunu çevrimiçi olması gerekir.Bir dosya grubu çevrimdışıysa, bir SQL deyim tarafından dosya grubunu erişmek için herhangi bir deneme bir hata ile başarısız olur.Sorgu planları için SELECT deyimlerine oluşturduğunuzda, sorgu iyileştiricisi, kümelenmemiş dizin ve çevrimdışı dosya grupları bulunan dizin oluşturulmuş görünümler önler.Bu, başarılı olması için bu ifadeleri sağlar.Ancak, çevrimdışı dosya grubu öbek ya da hedefin kümelenmiş dizin varsa tablo, SELECT deyimlerinin başarısız.Ayrıca, çevrimdışı bir dosya grubu içindeki herhangi bir dizini olan bir tabloyu değiştirir INSERT, UPDATE veya DELETE deyim başarısız olur.
Bir veritabanı RESTORING durumundayken çoğu ALTER DATABASE deyimlerinin başarısız olur.Özel Seçenekler veritabanı yansıtması olarak ayarlıyor.Bir veritabanı RESTORING durumunda, etkin bir geri yükleme işlemi sırasında veya bir geri yükleme işlemi bir veritabanı veya günlük dosyası, bozuk bir yedek dosyası nedeniyle başarısız olabilir.Daha fazla bilgi için bkz:SQL Server geri yükleme hataları bozuk yedekleme tarafından neden yanıt.
örnek için plan önbelleği SQL Server Aşağıdaki seçeneklerden birini ayarı tarafından kaldırılır:
ÇEVRİMDIŞI |
read_write |
ÇEVRİMİÇİ |
DOSYA GRUBU VARSAYILAN OLARAK DEĞİŞTİRME |
modify_name |
DOSYA GRUBU read_write DEĞİŞTİRME |
HARMANLA |
DOSYA GRUBU read_only DEĞİŞTİRME |
read_only |
|
Plan önbelleği temizleniyor tüm sonraki yürütme planlarının bir recompilation neden olur ve ani, geçici sorgu performans azalmasına neden olabilir.Plan önbelleğindeki temizlenmiş her cachestore için SQL Server hata günlüğü, bilgi aşağıdaki iletiyi içerir: "SQL Server yerde cachestore, bazı veritabanı bakım yüzünden '% s' cachestore (planı önbellek bir parçasý) için temizleme veya işlemleri yeniden %d karşılaştı".Bu ileti, önbelleği, bu saat aralığında aktarılmadan sürece her beş dakikada bir günlüğe kaydedilir.
Veritabanı harmanlama değiştirme
Bir veritabanı için farklı bir harmanlama uygulamadan önce aşağıdaki koşullar yerinde olduğundan emin olun:
Tek veritabanı kullanmakta olduğunuz.
Şemaya bağlı bir nesne yok, veritabanı üzerinde harmanlama bağlıdır.
If the following objects, which depend on the database collation, exist in the database, the ALTER DATABASEdatabase_nameCOLLATE statement will fail.SQL Server will return an error message for each object blocking the ALTER action:
Kullanıcı tanımlı işlevler ve SCHEMABINDING ile oluşturulan görünümleri.
Hesaplanan sütunlar.
CHECK sınırlamaları.
Alfabe karakteri sütunlarla tablolarla dönmek ve tablo değerli işlevler, varsayılan veritabanı harmanlama ' devralınmış.
Veritabanı Harmanlama değiştirildiğinde olmayan-şemaya bağlı varlıklar için bağımlılık bilgilerini otomatik olarak güncelleştirilir.Daha fazla bilgi için bkz:SQL Bağımlılıklar'ı anlama.
Veritabanı harmanlama değiştirme, yinelemeler arasında veritabanı nesneleri için herhangi bir sistem adlarını oluşturmaz.
Yinelenen adlar değişen harmanlamayı neden oluyorsa, aşağıdaki ad bir veritabanı harmanlama değişiklik başarısızlığın neden olabilir:
Yordamı, tablo, tetikleyici veya Görünüm gibi nesne adları.
Şema adı
Bir grup, rol ya da kullanıcı ilkeleri.
Sistem ve kullanıcı tanımlı skaler türü adları.
tam metin kataloğu adları.
Nesne içindeki sütun veya parametre adları.
Tablo içindeki adları dizin.
Yeni alfabe düzeni ' 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 döndürür.
Veritabanı bilgileri görüntüleme
Veritabanları, dosyaları ve dosya grupları hakkında bilgi için sistem saklı yordamları katalog görünümleri ve sistem işlevleri kullanabilirsiniz.Daha fazla bilgi için bkz:Veritabanı meta veriler görüntüleme.
İzinler
ALTER veritabanı izni gerektirir.
Örnekler
C.Veritabanının adını değiştirme
Aşağıdaki örnek adını değiştirir AdventureWorks veritabanına Northwind.
USE master;
GO
ALTER DATABASE AdventureWorks
Modify Name = Northwind ;
GO
b.Bir veritabanı, harmanlama değiştirme
Aşağıdaki örnek, adlı bir veritabanı oluşturur. testdb ile SQL_Latin1_General_CP1_CI_AS alfabe düzeni ve daha sonra 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
See Also