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:

Topic link iconTransact-SQL sözdizimi kuralları

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 >::=

<set_database_options >::=

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:

  1. Tek veritabanı kullanmakta olduğunuz.

  2. Ş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.

  3. 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