alter veritabanı (Transact-sql)

Bir veritabanı veya veritabanı ile ilişkili filegroups ve değiştirir. Ekler veya filegroups ve bir veritabanından kaldırır, bir veritabanı veya dosya ve filegroups özniteliklerini değiştirir, veritabanı harmanlama değiştirir ve veritabanı seçeneklerini ayarlar. Veritabanı anlık değiştirilemez. Çoğaltmayla ilişkili veritabanı seçeneklerini değiştirmek için sp_replicationdboption.

Uzunluğu nedeniyle, alter database sözdizimi aşağıdaki konulara ayrılır:

  • ALTER DATABASE
    Geçerli konuyu, adı ve bir veritabanı harmanlama değiştirme için sözdizimi sağlar.

  • alter database dosya ve dosya grubu seçenekleri
    Sözdizimi, ekleme ve veritabanından dosyaları ve filegroups kaldırma ve filegroups ve dosya özniteliklerinin değiştirilmesini sağlar.

  • alter database set seçenekleri
    Sözdizimi, alter database set seçenekleri kullanarak bir veritabanı özniteliklerini değiştirmek için sağlar.

  • alter database veritabanı yansıtma
    Yansıtma veritabanı ile ilgili set seçeneklerini alter DATABASE Sözdizimi sağlar.

  • ALTER DATABASE SET HCMH
    Sözdizimi sağlar AlwaysOn Kullanılabilirlik GruplarıAlwaysOn kullanılabilirlik Grup ikincil bir yineleme üzerinde ikincil veritabanı yapılandırma seçeneklerini alter DATABASE.

  • alter database uyumluluk düzeyi
    Veritabanı uyumluluk düzeyi için ilgili alter database set seçenekleri için sözdizimi sağlar.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

ALTER DATABASE { database_name  | CURRENT }
{
    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> ::=
  <FILESTREAM_options> ::=
  <HADR_options> ::=  
  <parameterization_option> ::=
  <recovery_option> ::= 
  <service_broker_option> ::=
  <snapshot_option> ::=
  <sql_option> ::= 
  <termination> ::=

Bağımsız değişkenler

  • database_name
    Değiştirilmesi için veritabanı adıdır.

    [!NOT]

    Bu seçeneği bulunan bir veritabanında kullanılamaz.

  • GEÇERLİ
    Kullanımı geçerli veritabanında değiştirilmesi gerektiğini belirtir.

  • İÇERME
    Veritabanı içerik durumunu belirtir. off = sigara içerdiği veritabanı. Kısmi kısmen içerdiği veritabanı =.

  • ADINI değiştirmek **=**new_database_name
    Veritabanı olarak belirtilen ad ile yeniden adlandırır new_database_name.

  • HARMANLAcollation_name
    Veritabanı için harmanlama belirtir. collation_namebir Windows harmanlaması adı veya sql harmanlaması adı olabilir. Belirtilmezse, veritabanı örneğinin harmanlama atanan SQL Server.

    Windows ve sql harmanlamayı 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), alter database veritabanı yansıtma (Transact-sql), alter database set HCMH (Transact-sql), ve alter database uyumluluk düzeyi (Transact-sql).

Açıklamalar

Bir veritabanı kaldırmak için drop database.

Veritabanı boyutunu azaltmak için dbcc SHRINKDATABASE.

alter database deyimini autocommit modunda (varsayılan işlem yönetimi modu) çalıştırması ve açık veya örtülü bir hareket içinde izin verilmez.

De SQL Server 2005ya da daha sonra bir veritabanı dosyası (örneğin, çevrimiçi veya çevrimdışı), devlet korunur bağımsız veritabanı devlet. Daha fazla bilgi için, bkz. Dosya Birleşik. Filegroup içindeki durumunu tüm filegroup uygunluğunu belirler. Bir filegroup kullanılabilmesini filegroup içindeki tüm dosyaları çevrimiçi olması gerekir. Bir filegroup çevrimdışıysa, filegroup bir sql deyimi tarafından erişim çalışın herhangi bir hata ile başarısız olur. select deyimi için sorgu planları oluştururken, query optimizer kümelendirilmemiş dizinleri ve dizin oluşturulmuş görünümler çevrimdışı filegroups bulunan önler. Bu, başarılı olmak bu ifadeler sağlar. Ancak, çevrimdışı filegroup yığın veya hedef tablo kümelenmiş bir dizin varsa, select deyimleri başarısız. Ayrıca, çevrimdışı bir dosya grubu her dizinde bir tabloyu değiştirir INSERT, update veya delete deyimi başarısız olur.

Bir veritabanı geri yükleme durumunda iken, çoğu alter database deyimlerinin başarısız olur. Özel seçenekler yansıtma veritabanı kuruyor. Bir veritabanı etkin geri yükleme işlemi sırasında veya bozuk bir yedekleme dosyası nedeniyle bir veritabanı ya da günlük dosyasının bir geri yükleme işlemi başarısız olduğunda geri yükleme durumunda olabilir.

Plan önbelleği örneği için SQL Serveraşağıdaki seçeneklerden birini belirleyerek temizlenir:

ÇEVRİMDIŞI

READ_WRITE

ONLINE

FILEGROUP VARSAYILAN DEĞİŞTİRME

MODIFY_NAME

FILEGROUP READ_WRITE DEĞİŞTİRME

COLLATE

FILEGROUP READ_ONLY DEĞİŞTİRME

READ_ONLY

 

Plan önbelleğini temizlemek, tüm sonraki yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. İçin planı önbellek temizlenir her yerde SQL Serverhata günlüğünde, aşağıdaki bilgilendirme iletisi bulunur: " SQL Server ' % s' cachestore cachestore Temizleme %d karşılaştı cachestore (planı önbellek parçası) bazı veritabanı bakım ya da yeniden yapılandırın işlemleri nedeniyle". Bu ileti, her beş dakikada bir, önbellek bu süre zarfında boşaltıldığı sürece günlüğe yazılır.

Veritabanı harmanlamayı değiştirme

Bir veritabanı farklı harmanlama uygulamadan önce aşağıdaki koşulların yerinde olduğundan emin olun:

  1. Tek veritabanı kullanmakta olduğunuz.

  2. Hayır şeması bağlı nesne, veritabanı harmanlama üzerinde bağlıdır.

    Veritabanı, alter database veritabanı harmanlamayı bağlıdır, aşağıdaki nesneler vardatabase_namecollate deyimi başarısız olur. SQL ServerDeğiştir eylemi engelleme her nesne için bir hata iletisi döndürür:

    • Kullanıcı tanımlı işlevler ve SCHEMABINDING ile oluşturulan görünümleri.

    • Hesaplanan sütunlar.

    • check kısıtlamaları.

    • Alfabe karakteri sütunlarla tablolarla dönmek tablo değerli işlevler varsayılan veritabanı harmanlama miras.

    Veritabanı harmanlama değiştirildiğinde olmayan-şemaya bağlı varlıklar için bağımlılık bilgileri otomatik olarak güncelleştirilir.

Veritabanı harmanlamayı değiştirme çoğaltmaları veritabanı nesneleri için herhangi bir sistem adları arasında oluşturmaz. Aşağıdaki ad alanları, yinelenen adları değiştirilmiş harmanlama neden oluyorsa, 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ı içinde bir nesne.

  • Tablo içindeki dizin adları.

Yeni harmanlama kaynaklanan yinelenen adları Değiştir eylemi başarısız olmasına neden olur ve SQL Serveryinelenen bulunduğu ad boşluğunu belirten bir hata iletisi döndürecektir.

Veritabanı bilgilerini görüntüleme

Veritabanları, dosyaları ve filegroups hakkında bilgi dönmek için katalog görünümleri, sistem işlevleri ve sistem saklı yordamları kullanabilirsiniz.

İzinler

alter veritabanı izni gerektirir.

Örnekler

A.Bir veritabanı adı değiştirme

Aşağıdaki örnek adını değiştirir AdventureWorks2012veritabanı Northwind.

USE master;
GO
ALTER DATABASE AdventureWorks2012
Modify Name = Northwind ;
GO

USE master;
GO
ALTER DATABASE AdventureWorks2012
Modify Name = Northwind ;
GO

B.Veritabanı harmanlamayı değiştirme

Aşağıdaki örnek, adlı bir veritabanı oluşturur testdbile SQL_Latin1_General_CP1_CI_As harmanlama ve harmanlama değiştirir testdbveritabanı 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

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.

Başvuru

Veritabanı (Transact-sql) oluştur

databasepropertyex (Transact-sql)

Veritabanı (Transact-sql) bırak

set hareket yalıtım DÜZEYINE (Transact-sql)

eventdata (Transact-sql)

sp_configure (Transact-sql)

sp_spaceused (Transact-sql)

sys.Databases (Transact-sql)

sys.database_files (Transact-sql)

sys.database_mirroring_witnesses (Transact-sql)

sys.data_spaces (Transact-sql)

filegroup_namesys.Filegroups (Transact-sql)

sys.master_files (Transact-sql)

Kavramlar

Sistem veritabanları