Veritabanı (Transact-SQL) oluştur

Yeni bir veritabanı ve veritabanı depolamak için kullanılan dosyaları oluşturur, veritabanı anlık görüntüsüoluşturur veya ayrılmış önceden oluşturulmuş bir veritabanı dosyalarından bir veritabanına ekler.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

CREATE DATABASE database_name 
    [ ON 
        { [ PRIMARY ] [ <filespec> [ ,...n ] 
        [ , <filegroup> [ ,...n ] ] 
    [ LOG ON { <filespec> [ ,...n ] } ] }
    ] 
    [ COLLATE collation_name ]
    [ WITH <external_access_option> ]
]
[;]

To attach a database
CREATE DATABASE database_name 
    ON <filespec> [ ,...n ] 
    FOR { ATTACH [ WITH <service_broker_option> ]
        | ATTACH_REBUILD_LOG }
[;]

<filespec> ::= 
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' } 
        [ , SIZE = size [ KB | MB | GB | TB ] ] 
        [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] 
        [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [ ,...n ]
}

<filegroup> ::= 
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
    <filespec> [ ,...n ]
}

<external_access_option> ::=
{
  [ DB_CHAINING { ON | OFF } ]
  [ , TRUSTWORTHY { ON | OFF } ]
}
<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

Create a database snapshot
CREATE DATABASE database_snapshot_name 
    ON 
    (
        NAME = logical_file_name,
        FILENAME = 'os_file_name' 
    ) [ ,...n ] 
    AS SNAPSHOT OF source_database_name
[;]

Bağımsız değişkenler

  • database_name
    Yeni bir veritabanı adıdır.Veritabanı adları örnek içinde benzersiz olmalı SQL Server ve kuralları ile uyumlu tanımlayıcıları.

    database_namemantıksal ad için günlük dosyası belirtilmemiş sürece en fazla 128 karakter olabilir.Bir mantıksal günlük dosyası adı belirtilmezse, SQL Server oluşturduğu logical_file_name ve os_file_name günlüğü bir sonek ekleme tarafından database_name.Bu sınırlar database_name için oluşturulan mantıksal dosya adı en fazla 128 karakter. böylece 123 karakter

    Veri dosyası adı belirtilmezse, SQL Server kullanan database_name olarak hem de logical_file_name ve os_file_name.Varsayılan yol , kayıt defterinden alınmaktadır.Varsayılan yol (veritabanı ayarları sayfa) sunucu özelliklerini kullanarak değişiklik olabilir Management Studio.Varsayılan yol değiştirmesini yeniden başlatılmasını gerektirir SQL Server.

  • ON
    Veri bölümleri veritabanının veri dosyalarını saklamak için kullanılan disk dosyalarını açıkça tanımlanmış belirtir.Virgülle ayrılmış listesi tarafından izlenirse on gereklidir <dosyabelirtimi> birincil dosya grubuiçin veri dosyaları tanımlayan öğeleri.Bir isteğe bağlı, virgülle ayrılmış listesi birincil dosya grubu dosyaların listesini izlenebilir <dosya grubu> , kullanıcı dosya gruplarını ve dosyalarını tanımlayan öğeleri.

  • BİRİNCİL
    Belirleyen bir ilişkili <dosyabelirtimi> birincil dosya listesini tanımlar.Belirtilen dosyanın ilk <dosyabelirtimi> birincil dosya grubu girişinde birincil dosya haline gelir.Bir veritabanı, yalnızca bir birincil dosya olabilir.Daha fazla bilgi için, bkz. Dosyaları ve Filegroups mimarisi.

    BİRİNCİL belirtilmezse, create database deyim içinde listelenen ilk dosya birincil dosya olur.

  • GÜNLÜK ON
    Veritabanı günlüğü, günlük dosyalarını depolamak için kullanılan disk dosyalarını açıkça tanımlanmış belirtir.Günlük on virgülle ayrılmış listesi tarafından izlenen <dosyabelirtimi> günlük dosyaları tanımlayan öğeleri.Günlük on belirtilmezse, tek bir günlük dosyası veritabanı veya 512 kb için tüm veri dosyalarının boyutları toplamını yüzde 25'i bir boyutu olan otomatik olarak oluşturulur, hangisi daha büyükse.Bu dosya varsayılan günlük dosyası konuma yerleştirilir.Bu konumu hakkında daha fazla bilgi için bkz: Nasıl yapılır: Görüntülemek veya değiştirmek için veri ve günlük dosyaları (SQL Server Management Studio'yu) varsayılan konumları.

    Günlük on veritabanı anlık görüntüsüüzerinde belirtilemez.

  • HARMANLAMAcollation_name
    Veritabanı için varsayılan harmanlama belirtir.Harmanlama adı, bir Windows harmanlama adı veya bir SQL harmanlama adı olabilir.Belirtilmezse, veritabanı örnek varsayılan harmanlama atanır SQL Server.Bir harmanlama adı üzerinde veritabanı anlık görüntüsübelirtilemez.

    for attach veya for ATTACH_REBUILD_LOG yan tümceleri ile bir harmanlama adı belirtilemez.İliştirilmiş bir veritabanı harmanlama değiştirme hakkında daha fazla bilgi için ziyaret Microsoft Web sitesi.

    Windows ve SQL harmanlama adları hakkında daha fazla bilgi için bkz: HARMANLAMA (Transact-SQL).

  • attach için [WITH <service_broker_option>
    Veritabanı tarafından oluşturulduğunu belirtir ekleme bir varolan küme , işletim sistemi dosyalarını.Olması gerekir bir <dosyabelirtimi> birincil dosya belirten girdi.Yalnızca diğer <dosyabelirtimi> gerekli girişler olanlar ne zaman veritabanı ilk gelen farklı bir yol olan tüm dosyaların oluşturulma veya son iliştirildiği için.A <dosyabelirtimi> giriş için bu dosyaların belirtilmesi gerekir.

    Aşağıdaki attach gerektirir için:

    • Tüm veri dosyaları (mdf ise ve ndf) kullanılabilir olması gerekir.

    • Birden çok günlük dosyası yoksa, tüm kullanılabilir olmaları gerekir.

    Okuma/yazma veritabanı şu anda kullanılamıyor tek bir günlük dosyası varsa ve veritabanı kapalı kullanıcılar veya ekleme işleminden önce açık hareketler için günlük dosyası oluşturur ve birincil dosya güncelleştirmeleri otomatik olarak Ekle kapatın.Buna karşılık, birincil dosya oluşturulamaz çünkü salt okunur veritabanı için günlük güncellenemez.Bu nedenle, günlük kullanılamaz salt okunur bir veritabanı iliştirdiğinizde, günlük dosyalarını veya yan tümcefor attach dosyalar sağlamanız gerekir.

    Not

    Daha yeni, bir sürüm ile oluşturulmuş bir veritabanını SQL Server eklenemez önceki sürümleri.kaynak veritabanının en az olmalıdır sürüm 80 (SQL Server 2000) eklemek için SQL Server 2008.SQL Server 2000veya SQL Server 2005 bir uyumluluk düzey küçüktür 80 olan veritabanları olacaktır küme 80 uyumluluk takılı oldukları zaman.

    De SQL Server, tam metin dosyaları, şu anda bağlı veritabanının bir parçası olan bağlı veritabanı.tam metin kataloğuyeni bir yol belirtmek için yeni konumun tam metin işletim sistemi dosya adı olmadan belirtin.Daha fazla bilgi için örnekler bölümüne bakın.

    veritabanı anlık görüntüsüiçin attach belirtilemez.

    Veritabanı kullanırsa Service BrokerWITH kullanın <service_broker_option> sizin için attach yan tümceiçinde:

    • <service_broker_option>
      Denetimleri Service Broker ileti teslim ve Service Broker tanımlayıcısı için veritabanı.Service Brokerfor attach yan tümce kullanıldığında seçenekler yalnızca belirtilebilir.

      • ENABLE_BROKER
        Belirleyen Service Broker etkinleştirilmiş olduğu belirtilen bir veritabanı.İleti teslimi başlamış ve is_broker_enabled true olarak küme sys.databases Katalog görünümü.Varolan veritabanını korur Service Broker tanımlayıcısı.

      • NEW_BROKER
        Yeni bir oluşturur service_broker_guid hem de değeri sys.databases ve geri yüklenen veritabanı ve tüm konuşma bitiş noktaları temiz up. ile bitenAyırıcı etkin, ancak uzaktan konuşma bitiş noktaları için herhangi bir ileti gönderilir.Eski başvuran herhangi bir yol Service Broker tanımlayıcısı silinmeli, yeni bir tanımlayıcı.

      • ERROR_BROKER_CONVERSATIONS
        Veritabanı ekli veya geri olduğunu belirten bir hata ile tüm görüşmeler sona erer.Bu işlem tamamlandı ve sonra etkin kadar broker devre dışı bırakılır.Varolan veritabanını korur Service Broker tanımlayıcısı.

      Daha fazla bilgi için, bkz. Hizmet Aracısı kimlikleri yönetme.

    Her bir veritabanı ilişkisi kesildi ve bağlı olan küme dosya izinleri hakkında daha fazla bilgi için bkz: Veri ve günlük dosyalarının güvenliğini sağlama.

    Ayrılır yerine kopyalanan çoğaltılmış veritabanı iliştirdiğinizde, aşağıdakileri göz önünde bulundurun:

    • Veritabanını aynı sunucu örnek ve sürüm özgün veritabanı olarak iliştirirseniz, hiçbir ek adımlar gereklidir.

    • Veritabanını aynı sunucu örnek iliştirin, ancak bir yükseltilmiş sürüm yürütmekgerekirsp_vupgrade_replication Ekle işlemi tamamlandıktan sonra çoğaltma yükseltmek için.

    • Veritabanını farklı bir sunucu örnek, bir sürümne olursa olsun eklemek, yürütmekgerekirsp_removedbreplication çoğaltma Ekle işlemi tamamlandıktan sonra kaldırılacak.

      Not

      Works ile iliştirmek vardecimal depolama biçimi, ancak SQL Server Veritabanı Altyapısı gerekir yükseltme için en az SQL Server 2005 Service Pack 2.Vardecimal depolama biçimi'nın önceki sürüm kullanarak bir veritabanı eklenemiyor SQL Server.Hakkında daha fazla bilgi için vardecimal depolama biçimi, bkz: Değişken uzunlukta ondalık veri saklama.

    Bir veritabanı kullanarak yükseltme hakkında bilgi için Ekle, bkz: Nasıl yapılır: Yükseltme veritabanı kullanma bağlantısını kesin ve (Transact-SQL) Ekle.

    Güvenlik notuGüvenlik Notu

    Bilinmeyen veya güvenilmeyen kaynaklardan gelen veritabanlarını eklemeyin öneririz.Bu tür veritabanlarının yürütmek istenmeyen olabilir kötü niyetli kod içerebilecek Transact-SQL kod veya şema veya fiziksel veritabanı yapısıdeğiştirerek hatalara neden.Bilinmeyen veya güvenilmeyen bir kaynakveritabanından kullanmadan önce çalıştırmak dbcc checkdb bir benzerini sunucusundaki veritabanında ve ayrıca saklı yordamlar veya veritabanındaki diğer kullanıcı tanımlı kod gibi bir kodu inceleyin.

  • ATTACH_REBUILD_LOG İÇİN
    Bir varolan küme , işletim sistemi dosyalarını ekleyerek veritabanı oluşturulması gerektiğini belirtir.Bu seçenek veritabanları okuma/yazma sınırlıdır.Olması gerekir bir <dosyabelirtimi> girişi belirleyen birincil dosya.Bir veya daha fazla işlem günlük dosyaları eksikse, günlük dosyası yeniden oluşturulur.ATTACH_REBUILD_LOG, otomatik olarak yeni ve 1 mb günlük dosyası oluşturur.Bu dosya varsayılan günlük dosyası konuma yerleştirilir.Bu konumu hakkında daha fazla bilgi için bkz: Nasıl yapılır: Görüntülemek veya değiştirmek için veri ve günlük dosyaları (SQL Server Management Studio'yu) varsayılan konumları.

    Not

    Günlük dosyaları, varsa Veritabanı Altyapısı kullanacak aktarabilecek, yeniden inşa etmek günlük dosyaları.

    Aşağıdaki ATTACH_REBUILD_LOG gerektirir için:

    • temiz kapatma veritabanı.

    • Tüm veri dosyaları (mdf ise ve ndf) kullanılabilir olması gerekir.

    Önemli notÖnemli

    Bu işlem günlüğünü yedek zincirini keser.İşlem tamamlandıktan sonra bir tam veritabanı yedek yapılması önerilir.Daha fazla bilgi için, bkz. BACKUP (Transact-SQL).

    Genellikle, başka bir sunucuya kopyalama çoğunlukla kullanılacağı veya yalnızca, okuma işlemleri için bir okuma/yazma veritabanı büyük bir günlük ile kopyalayın ve bu nedenle özgün veritabanına göre daha az günlük alanı gerektirir için ATTACH_REBUILD_LOG kullanılır.

    ATTACH_REBUILD_LOG için veritabanı anlık görüntüsüüzerinde belirtilemez.

    Veritabanı ayırma ve iliştirme hakkında daha fazla bilgi için bkz: Ayırma ve veritabanları ekleme.

  • <dosyabelirtimi>
    Dosya özelliklerini denetler.

  • ADIlogical_file_name
    Dosya mantıksal ad belirtir.Dosya adı belirtilmediğinde for attach yan tümceleri birini belirterek, dışında adı gereklidir.FILESTREAM dosya grubu birincil adı olamaz.

    • logical_file_name
      Kullanılan mantıksal ad SQL Server , başvuran dosya. Logical_file_name veritabanındaki benzersiz ve kurallarını uymanız gereken tanımlayıcıları.Ad, bir karakter veya Unicode sabitveya normal veya sınırlandırılmış tanımlayıcıolabilir.
  • Dosya adı { 'os_file_name' | 'filestream_path' }
    İşletim sistemi (fiziksel) dosyasının adını belirtir.

    • 'os_file_name'
      Dosya oluşturduğunuzda yol ve dosya adını işletim sistemi tarafından kullanılır.Dosyayı aşağıdaki aygıtlardan birinin bulunması gerekir: yerel sunucuyu SQL Server yüklü olan depolama alanı ağı [san] veya bir iSCSI tabanlı ağ.Belirtilen yol , create database deyimyürütmeden önce varolmalıdır.Daha fazla bilgi için bkz: "Database Files and filegroups" Açıklamalar bölümünde.

      Dosya için bir unc yol belirtilmediğinde BOYUTU, MAXSIZE ve FILEGROWTH parametrelerini küme olamaz.

      Dosya ham bir bölüme ise os_file_name belirtmeniz gerekir yalnızca sürücü harfi bir varolan ham bölüm.Tek bir veri dosyası üzerinde ham her bölüm oluşturulabilir.

      Veri dosyaları sıkıştırılmış dosya sistemlerinde dosyaları salt okunur ikincil dosyaları olarak veya veritabanı salt okunur olduğu sürece konması gereken değil.Günlük dosyaları, sıkıştırılmış dosya sistemlerinde hiçbir zaman koymanız gerekir.Daha fazla bilgi için, bkz. Salt okunur Filegroups ve sıkıştırma.

    • 'filestream_path'
      FILESTREAM dosya grubuiçin dosya adı FILESTREAM verilerinin depolandığı yol belirtir.Son klasör kadar yol var olmalıdır ve son var olmalıdır.Örneğin, yol C:\MyFiles\MyFilestreamData belirtirseniz, C:\MyFiles, alter database çalıştırılmadan önce mevcut olmalıdır, ancak MyFilestreamData var olmalıdır.

      dosya grubu ve dosya (<filespec>) aynı deyimoluşturulmalıdır.Tek bir dosya olabilir <filespec>, FILESTREAM dosya grubuiçin.

      BOYUT MAXSIZE ve FILEGROWTH özelliklerini FILESTREAM dosya grubugeçerli değildir.

  • BOYUTUsize
    Dosya boyutunu belirtir.

    BOYUT olamaz ne zaman belirtilen os_file_name unc yololarak belirtilen.FILESTREAM dosya grubuBOYUTU geçerli değildir.

    • size
      İlk dosya boyutudur.

      Zaman size birincil dosya için sağlanan Veritabanı Altyapısı birincil dosya boyutunu kullanır model veritabanı.Ne zaman bir ikincil veri dosyası veya günlük dosyası belirtilen ancak size dosyasında belirtilmemiş Veritabanı Altyapısı Dosya yapar 1 mb.Birincil dosya birincil dosyası olarak en az büyük için belirtilen boyut model veritabanı.

      Kilobayt (kb), megabayt (mb), gigabayt (gb) veya terabayt (tb) sonekleri kullanılabilir.Varsayılan değer MB'dir.Bir tam sayı belirtin; ondalık eklemeyin.Sizebir tamsayı değeridir.2147483647'den büyük olan değerler için daha büyük birimler kullanın.

  • MAXSIZEmax_size
    Dosyasının büyüyebileceği maksimum boyutu belirtir.MAXSIZE olamaz ne zaman belirtilen os_file_name unc yololarak belirtilen.MAXSIZE FILESTREAM dosya grubugeçerli değildir.

    • max_size
      En büyük dosya boyutu büyük.kb, mb, gb ve tb sonekleri kullanılabilir.Varsayılan değer MB'dir.Bir tam sayı belirtin; ondalık eklemeyin.max_size Belirtilmezse, dosya büyür kadar disktir dolu.Max_sizebir tamsayı değeridir.2147483647'den büyük olan değerler için daha büyük birimler kullanın.
  • SINIRSIZ
    Disk dolu olduğu kadar dosya büyür belirtir.De SQL Server, sınırsız büyüme ile belirtilen günlük dosyası boyutu üst sınırı 2 olan tb ve bir veri dosyası olan en büyük boyutu 16 tb.

  • FILEGROWTHgrowth_increment
    Otomatik büyüme artışı dosyasını belirtir.Bir dosya için FILEGROWTH ayarını MAXSIZE ayarı geçemez.FILEGROWTH olamaz ne zaman belirtilen os_file_name unc yololarak belirtilen.FILEGROWTH FILESTREAM dosya grubugeçerli değildir.

    • growth_increment
      Her saat yeni bir alan gerekli boşluk miktarını dosyaya eklenen olur.

      Değer, mb, kb, gb, tb veya yüzde (%) olarak belirtilebilir.mb, kb veya % sonek bir numarası belirtilmezse, varsayılan değer MB'dir.% Belirtildiğinde, büyüme artışı saat artışı dosyasının boyutunu belirtilen yüzdesi oluşur boyutudur.Belirtilen boyutta yakın 64 kb olarak yuvarlanır.

      0 Değeri otomatik büyüme kapalıdır ve hiçbir ek alan izin gösterir.

      FILEGROWTH belirtilmezse, varsayılan değer 1 veri dosyalarının ve günlük dosyalarının % 10 MB'dir ve minimum değeri 64 KB'tır.

      Not

      De SQL Server, veri dosyaları için varsayılan büyüme artışı %10 değişti1 mb. için% 10 Günlük dosyası varsayılan değişmeden kalır.

  • <dosya grubu>
    dosya grubu özelliklerini denetler.Filegroup veritabanı anlık görüntüsüüzerinde belirtilemez.

  • DOSYA GRUBUfilegroup_name
    dosya grubu mantıksal ad olur.

    • filegroup_name
      filegroup_nameveritabanı içinde benzersiz olmalıdır ve sistem tarafından sağlanan birincil ve adları PRIMARY_LOG olamaz.Ad, bir karakter veya Unicode sabitveya normal veya sınırlandırılmış tanımlayıcıolabilir.Adı için olan kurallara uymak zorunda tanımlayıcıları.

    • FILESTREAM İÇERİR
      dosya grubu FILESTREAM ikili büyük nesneleri (BLOB) dosya sisteminde depolar belirtir.

    • VARSAYILAN
      Adlandırılmış dosya grubu veritabanında varsayılan dosya grubu belirtir.

  • <external_access_option>
    Dış erişim için ve veritabanından denetler.

    • DB_CHAINING {ON | OFF }
      on belirtildiğinde veritabanı kaynak ya da hedef veritabanları arası sahiplik zinciriolabilir.

      Ne zaman kapalı, veritabanı veritabanları arası sahiplik zincirialamaz.Varsayılan kapalı'dır.

      Önemli notÖnemli

      örnek SQL Server Bu ayarı tanır cross db ownership chaining sunucu seçeneği: 0 (kapalı).Zaman cross db ownership chaining 1 (açık), tüm kullanıcı veritabanları değeri ne olursa olsun veritabanları arası sahiplik chains katılmakbu seçenek.Bu seçenek küme kullanarak, sp_configure.

      küme için bu seçenek gerektirir üyelik sysadminsabit sunucu rolü. DB_CHAINING seçeneği küme bu sistem veritabanlarıolamaz: master, model, tempdb.

      Daha fazla bilgi için, bkz. Sahiplik Chains.

    • GÜVENİLİR {ON | OFF }
      on belirtildiğinde kimliğe bürünme içerik kullanan veritabanı modülleri (örneğin, görünümleri, kullanıcı tanımlı işlevler veya saklı yordamlar) veritabanı dışına kaynaklara erişebilir.

      Ne zaman kapalı, kimliğe bürünme içerik veritabanı modüllerinde veritabanının dışındaki kaynaklara erişemez.Varsayılan kapalı'dır.

      Veritabanı ekli olduğu durumlarda, küme off güvenilirdir.

      Varsayılan olarak, tüm sistem veritabanları dışında msdb veritabanı sahip güvenilir küme kapatır.İçin değeri değiştirilemez model ve tempdb veritabanları.Size hiçbir zaman trustworthy küme için açık seçeneği öneririz master veritabanı.

      küme için bu seçenek gerektirir üyelik sysadminsabit sunucu rolü.

  • database_snapshot_name
    Yeni veritabanı anlık görüntüsüadıdır.Veritabanı anlık görüntü adları örnek içinde benzersiz olmalı SQL Server ve bunlara uyduğunuzdan kurallarını tanımlayıcıları.database_snapshot_nameen fazla 128 karakter olabilir.

  • ON ( NAME =logical_file_name, FILENAME = 'os_file_name') [ ,... n ]
    veritabanı anlık görüntüsüoluşturmak için kaynak veritabanındaki dosyaların listesini belirtir.Çalışmak anlık görüntü için tüm veri dosyalarını ayrı ayrı belirtilmelidir.Ancak, günlük dosyaları, veritabanı anlık görüntüler için verilmez.FILESTREAM filegroups veritabanı Snapshot'ları desteklenmez.create database on yan tümcetümcesini FILESTREAM veri dosyası içeriyorsa, deyim başarısız olur ve bir hata oluşturdu.

    Açıklamaları adı ve dosya adı ve değerlerine eşdeğer açıklamalarını görmek için <dosyabelirtimi> değerler.

    Not

    Oluşturduğunuzda, bir veritabanı anlık görüntüsü, diğer <dosyabelirtimi> seçenekleri ve birincil anahtar sözcük izin verilmez.

  • ANLIK OLARAKsource_database_name
    Oluşturulan veritabanı tarafından belirtilen kaynak veritabanı veritabanı anlık görüntüsü olduğunu belirtir source_database_name.anlık görüntü ve kaynak veritabanının aynı örneküzerinde olması gerekir.

    Daha fazla bilgi için bkz: "Veritabanı anlık görüntüler" Açıklamalar bölümünde.

Açıklamalar

asıl veritabanı gerektiini kullanıcı veritabanı oluşturulmuş, değiştirilmiş veya bırakılan her.

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

Bir create database deyim , bir veritabanı ve veritabanı depolayan dosyalar oluşturmak için kullanabilirsiniz.SQL Servercreate database deyim aşağıdaki adımları kullanarak uygular:

  1. SQL Server Bir kopyasını kullanan model veritabanı veritabanı ve bunun meta verilerbaşlatılamadı.

  2. hizmet broker GUID için veritabanı atanır.

  3. Veritabanı Altyapısı Sonra veritabanı dışındaki sayfalar için olan iç veri bu kayıtların nasıl alanı kullanılan veritabanında boş sayfaları ile geri kalanını doldururDaha fazla bilgi için, bkz. Veritabanı dosyasını başlatma.

örnek üzerinde en fazla 32.767 veritabanları belirtilebilir SQL Server.

Her veritabanı veritabanına özel etkinlikler gerçekleştirebilir bir sahibi vardır.Veritabanı oluşturur kullanıcıya sahiptir.Veritabanı sahibi kullanılarak değiştirilebilir sp_changedbowner.

Veritabanı dosyaları ve Filegroups

Her veritabanı, en az 2 dosya, birincil dosya ve bir işlem günlüğü dosyası ve en az bir dosya grubuvardır.En fazla 32.767 dosyaları ve 32.767 filegroups her veritabanı için belirtilebilir.Daha fazla bilgi için, bkz. Dosyaları ve Filegroups mimarisi.

Bir veritabanı oluşturduğunuzda, veri dosyaları mümkün olduğu kadar büyük veri miktarı üst sınırıdır veritabanında beklediğiniz temel olun.Daha fazla bilgi için, bkz. Veritabanı büyüme yönetmek için dosya ve Filegroups kullanma.

Depolanması için bir depolama alanı ağı (san), iSCSI tabanlı ağ veya yerel olarak bağlı disk kullanmanızı öneririz, SQL Server , veritabanı dosyaları, çünkü bu yapılandırma en iyi duruma SQL Server Performans ve güvenilirlik.

Veritabanı anlık görüntüleri

Salt okunur, statik bir görünüm oluşturmak için create database deyim kullanabilirsiniz bir veritabanı anlık görüntüsü, varolan bir veritabanının kaynak veritabanı.veritabanı anlık görüntüsü kaynak veritabanı ile tutarlı sonucuna gibidir anlık görüntü oluşturulduğunda saat vardı.kaynak veritabanı birden çok anlık olabilir.

Not

veritabanı anlık görüntüsüoluşturduğunuzda, create database deyim dosyalarını ve geçersiz dosyalarını geri yükleme günlük dosyalarının, çevrimdışı dosyalar, başvuru yapamazsınız.

veritabanı anlık görüntüsü oluşturma başarısız olursa, anlık görüntü şüpheli olur ve silinmesi gerekir.Daha fazla bilgi için, bkz. Veritabanı (Transact-SQL) bırak.

drop database kullanarak silinene kadar her anlık görüntü devam ederse.

Daha fazla bilgi için, bkz. Veritabanı anlık görüntüleri ve Sınırlamalar ve veritabanı anlık görüntüleri gereksinimleri.

Veritabanı seçenekleri

Her bir veritabanı oluşturduğunuzda birkaç veritabanına otomatik küme seçeneklerdir.Bu seçenekler ve varsayılan ayarlarına listesi için bkz: Veritabanı seçeneklerini ayarlama.Bu seçenekler kullanılarak değiştirilebilir alter database deyim.

Modeli veritabanı ve yeni veritabanları oluşturma

Tüm kullanıcı tanımlı nesneler model veritabanı tüm yeni oluşturulan veritabanlarına kopyalanır.Tablolar, görünümler, saklı yordamlar, veri türleri ve benzeri gibi herhangi bir nesne için ekleyebilirsiniz model veritabanı eklenmek üzere tüm yeni oluşturulan veritabanları.

create database, database_name deyim , ek boyutu parametreleri belirtildiğinde, birincil veri dosyası birincil dosyasında aynı boyutta yapılan model veritabanı.

for attach belirtilmediği sürece, her yeni veritabanı veritabanı seçeneği ayarlarını devralır model veritabanı.Örneğin, veritabanı seçeneği auto shrink olan küme true , model ve oluşturduğunuz tüm yeni veritabanları.Seçeneklerini değiştirirseniz, model veritabanı, bu yeni seçenek ayarları, oluşturduğunuz tüm yeni veritabanları kullanılır.Değiştirme işlemlerinde model veritabanı etkilemez varolan veritabanları.create database deyimfor attach belirtilirse, yeni veritabanını özgün veritabanının veritabanı seçeneği ayarlarını devralır.

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

create database, create any database veya any database alter izni gerektirir.

örnek üzerinde disk kullanımı üzerinde denetimi korumak için SQL Server, veritabanları oluşturma izni genellikle sınırlı birkaç oturum açma hesapları.

Veri ve günlük dosyaları izinlerini

De SQL Server, belirli izinleri olan küme veri ve günlük dosyaları her veritabanının.Veritabanına aşağıdaki işlemleri uygulandığında aşağıdaki izinleri küme şunlardır:

Oluşturulma

Yeni bir dosya eklemek için değiştirilmiş

Ekli

Yedeklenen

İlişkisi kesildi

Geri

İzinleri açık izinleri olan bir dizinde bulunuyorsa yanlışlıkla değişiklik gelen dosyaları engeller.Daha fazla bilgi için, bkz. Veri ve günlük dosyalarının güvenliğini sağlama.

Not

Microsoft SQL Server 2005 Express Editionveri ve günlük dosyası izinleri küme yapar.

Örnekler

A.Veritabanı dosyaları belirtmeden oluşturma

Aşağıdaki örnek, veritabanı oluşturur mytest ve bir birincil ilgili ve işlem günlük dosyası.deyim yok olduğundan <dosyabelirtimi> öğeleri, birincil veritabanı dosyası boyutudur model veritabanı birincil dosya.İşlem günlüğü küme için daha büyük olan bu değerlerin: 512 kb veya % 25 birincil veri dosyasının boyutu.MAXSIZE belirtilmemiş olduğundan, dosyalar tüm kullanılabilir disk alanını doldurmak için büyüyebilir.Bu örnek ayrıca adlı veritabanı bırak gösterilmiştir mytest , oluşturmadan önce varsa mytest veritabanı.

USE master;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs] 
FROM sys.master_files
WHERE name = N'mytest';
GO

B.Veritabanı oluşturma veri ve hareket kütüğü dosyaları belirtir

Aşağıdaki örnek, veritabanı oluşturur Sales.Çünkü ilk dosyası birincil olmayan anahtar sözcüğü kullanılıyor (Sales_dat) birincil dosya. olurNe mb, ne de kb BOYUTU parametresi için belirtilen çünkü Sales_dat dosyasını kullanır ve megabayt. tahsis edilenSales_log Dosyası, megabayt cinsinden ayrılır, çünkü MB sonek belirtildiği açıkça SIZE parametresi.

USE master;
GO
CREATE DATABASE Sales
ON 
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

C.Birden çok veri ve işlem günlük dosyalarını belirterek veritabanı oluşturma

Aşağıdaki örnek, veritabanı oluşturur Archive üç olan 100-MB veri dosyalarını ve iki 100-MB işlem günlüğü dosyaları.Birincil dosya listesinde ilk dosyadır ve açıkça belirtilmiş PRIMARY anahtar sözcüğü.Aşağıdaki işlem günlüğü dosyalarını belirtilen LOG ON anahtar sözcükler.Not dosyaları için kullanılan uzantıları FILENAME seçeneği: .mdfbirincil veri dosyaları için kullanılan .ndf ikincil veri dosyaları için kullanılan ve .ldf için işlem günlüğü dosyaları.Bu örnek veritabanı yerleştirir D ile yerine sürücü master veritabanı.

USE master;
GO
CREATE DATABASE Archive 
ON
PRIMARY  
    (NAME = Arch1,
    FILENAME = 'D:\SalesData\archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch2,
    FILENAME = 'D:\SalesData\archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch3,
    FILENAME = 'D:\SalesData\archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
LOG ON 
   (NAME = Archlog1,
    FILENAME = 'D:\SalesData\archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
   (NAME = Archlog2,
    FILENAME = 'D:\SalesData\archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20) ;
GO

D.5. Sahip veritabanı oluşturma

Aşağıdaki örnek, veritabanı oluşturur Sales aşağıdaki filegroups olan:

  • Dosyaların birincil dosya grubu Spri1_dat ve Spri2_dat.Bu dosyaların FILEGROWTH katları olarak belirtilen 15%.

  • Adlı bir dosya grubu SalesGroup1 dosyaları ile SGrp1Fi1 ve SGrp1Fi2.

  • Adlı bir dosya grubu SalesGroup2 dosyaları ile SGrp2Fi1 ve SGrp2Fi2.

Bu örnek, veri ve günlük dosyaları performansı artırmak için farklı disklerde yerleştirir.

USE master;
GO
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
    FILENAME = 'D:\SalesData\SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
( NAME = SPri2_dat,
    FILENAME = 'D:\SalesData\SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
    FILENAME = 'D:\SalesData\SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
    FILENAME = 'D:\SalesData\SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
    FILENAME = 'D:\SalesData\SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
    FILENAME = 'D:\SalesData\SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'E:\SalesLog\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

E.Bir veritabanını iliştirmek

Aşağıdaki örnek veritabanını ayırır Archive d örnekte oluşturulmuş ve kullanarak ekler FOR ATTACH yan tümce.Archivebirden çok veri sağlamak için tanımlanmış olan ve günlük dosyaları.Oluşturulduklarından bu yana dosyalarının konumunu değişmediği için ancak yalnızca birincil dosya içinde belirtilmiş olması gerekir FOR ATTACH yan tümce.İle başlayan SQL Server 2005, tam metin dosyaları, şu anda bağlı veritabanının bir parçası olan bağlı veritabanı.

USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
      ON (FILENAME = 'D:\SalesData\archdat1.mdf') 
      FOR ATTACH ;
GO

F.veritabanı anlık görüntüsüoluşturma

Aşağıdaki örnek oluşturur veritabanı anlık görüntüsü sales_snapshot0600.veritabanı anlık görüntüsü salt okunur olduğu için bir günlük dosyası belirtilemez.Sözdizimi uygunluğu, her kaynak veritabanı dosyasında belirtilen ve filegroups belirtilmemiş.

Bu örnek kaynak veritabanı Sales veritabanı oluşturulmuş örnek d.

USE master;
GO
CREATE DATABASE sales_snapshot0600 ON
    ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'),
    ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'),
    ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'),
    ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'),
    ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'),
    ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss')
AS SNAPSHOT OF Sales ;
GO

G.Veritabanı oluşturma ve bir harmanlama adı ve seçenekleri belirtme

Aşağıdaki örnek, veritabanı oluşturur MyOptionsTest.Bir harmanlama adı belirtilen ve TRUSTYWORTHY ve DB_CHAINING Seçenekler şunlardır: küme ON.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

H.Taşınmış bir tam metin kataloğu ekleme

Aşağıdaki örnek tam metin kataloğueklerAdvWksFtCat ile birlikte AdventureWorks2008R2 veri ve günlük dosyaları. Bu örnekte, tam metin kataloğu varsayılan konumundan yeni bir konuma taşınır c:\myFTCatalogs.Veri ve günlük dosyaları varsayılan konumlarına kalır.

USE master;
GO
--Detach the AdventureWorks2008R2 database
sp_detach_db AdventureWorks2008R2;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2008R2 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2008R2 ON 
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_Data.mdf'), 
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_log.ldf'),
    (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO

Ö.Satır dosya grubu ve iki FILESTREAM filegroups veritabanı oluşturma belirtir

Aşağıdaki örnek oluşturur FileStreamDB veritabanı.Veritabanı, bir satır dosya grubu ve iki FILESTREAM filegroups ile oluşturulur.Her dosya grubu , bir dosya içerir:

  • FileStreamDB_dataSatır verileri içerir.Bir dosyayı içeren FileStreamDB_data.mdf varsayılan yol.

  • FileStreamPhotosFILESTREAM verileri içerir.Bir FILESTREAM veri kapsayıcıiçerir FSPhotos, adresinde bulunan C:\MyFSfolder\Photos.Varsayılan FILESTREAM dosya grubuişaretli.

  • FileStreamResumesFILESTREAM verileri içerir.Bir FILESTREAM veri kapsayıcıiçerir FSResumes, adresinde bulunan C:\MyFSfolder\Resumes.

USE master;
GO
IF DB_ID (N'FileStreamDB') IS NOT NULL
DROP DATABASE FileStreamDB;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY 
    (
    NAME = FileStreamDB_data 
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- SIZE, MAXSIZE, FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
    ),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
    (
    NAME = FileStreamResumes
    ,FILENAME = ''C:\MyFSfolder\Resumes''
    ) 
LOG ON
    (
    NAME = FileStream_log
    ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf''
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )'
);
GO