Veritabanı (Transact-sql) oluştur
Yeni bir veritabanı ve veritabanı veritabanı anlık görüntü saklamak için kullanılan dosyalar oluşturur veya müstakil önceden oluşturulmuş veritabanı dosyalarından bir veritabanına ekler.
Transact-SQL Sözdizim Kuralları
Sözdizimi
CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL }
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]
<option> ::=
{
FILESTREAM ( <filestream_option> [,...n ] )
| DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
| DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON}
| TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
| DB_CHAINING { OFF | ON }
| TRUSTWORTHY { OFF | ON }
}
<filestream_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
| DIRECTORY_NAME = 'directory_name'
}
To attach a database
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
| 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 | % ] ]
)
}
<filegroup> ::=
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
<filespec> [ ,...n ]
}
<attach_database_option> ::=
{
<service_broker_option>
| RESTRICTED_USER
| FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}
<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 veritabanı adıdır. Veritabanı adları örneği içinde benzersiz olması gerekir SQL Serverve için olan kurallara uymak tanımlayıcıları.database_namegünlük dosyası için bir mantıksal ad belirtilmemiş sürece en fazla 128 karakter olabilir. Mantıksal günlük dosyası adı belirtilmezse, SQL Serverüreten logical_file_nameve os_file_nameiçin bir sonek ekleyerek tarafından günlük database_name. Bu sınırlar database_nameiçin 123 karakterleri böylece oluşturulan mantıksal dosya adı en fazla 128 karakter olabilir.
Veri dosyası adı belirtilmezse, SQL Serverkullanan database_nameolarak hem logical_file_nameve os_file_name. Varsayılan yol, kayıt defterinden alınmaktadır. Varsayılan yol kullanılarak değiştirilebilir Sunucu özellikleri (veritabanı ayarları sayfası) de Management Studio. Varsayılan yolunu değiştirmesini gerektiren yeniden SQL Server.
İÇERME
Veritabanı içerik durumunu belirtir. off = sigara içerdiği veritabanı. Kısmi kısmen içerdiği veritabanı =.ON
Veritabanı, veri dosyaları, veri bölümlerini depolamak için kullanılan disk dosyalarını açıkça tanımlanmış belirtir. on gerekli bir virgülle ayrılmış listesi tarafından takip <filespec> veri dosyaları için birincil filegroup tanımlayan öğeleri. Birincil filegroup dosyaların listesini bir isteğe bağlı, virgülle ayrılmış listesi tarafından izlenebilir <filegroup> kullanıcı filegroups ve dosyaları tanımlayan öğeleri.BİRİNCİL
Belirleyen ilişkili <filespec> birincil dosya listesini tanımlar. Belirtilen dosyanın ilk <filespec> girdi birincil filegroup olur birincil dosya. Bir veritabanı, yalnızca bir birincil dosya olabilir. Daha fazla bilgi için, bkz. Veritabanı dosyaları ve Filegroups.BİRİNCİL belirtilmezse create database deyiminde 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. log on sonra virgülle ayrılmış listesi tarafından <filespec> günlük dosyaları tanımlayan öğeleri. log 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 oluşturulur, hangisi daha büyükse. Bu dosya varsayılan günlük dosyası konumuna yerleştirilir. Bu konumu hakkında daha fazla bilgi için bkz: Görüntülemek veya veri ve günlük dosyaları (SQL Server Management Studio'yu) için varsayılan konumlarını değiştirme.log on bir veritabanı anlık belirtilemez.
HARMANLAcollation_name
Veritabanı için varsayılan harmanlama belirtir. Harmanlama adı bir Windows harmanlama adı veya bir SQL harmanlama adı olabilir. Belirtilmezse, veritabanı örneğinin varsayılan harmanlama atanır SQL Server. Bir veritabanı anlık bir harmanlama adı belirtilemez.Bir harmanlama adı ile İLİŞTİRMEK için veya for ATTACH_REBUILD_LOG yan tümceleri belirtilemez. Bu bağlı bir veritabanı harmanlama değiştirme hakkında daha fazla bilgi için ziyaret Microsoft Web sitesini.
Windows ve sql harmanlamayı adları hakkında daha fazla bilgi için bkz: HARMANLAMA (Transact-sql).
[!NOT]
İçerdiği veritabanları farklı veritabanlarında bulunan harmanlanmış. Lütfen bakın İçerdiği veritabanı harmanlamalardaha fazla bilgi için.
İLE <seçeneği>
Yalnızca içerik için kısmi ayarlandığında aşağıdaki seçenekleri izin verilebilir. CONTAINMENT hiçbiri olarak ayarlarsanız, hata oluşur.<filestream_options>
non_transacted_access = { off | READ_ONLY | TAM}
Veritabanı işlemsel olmayan FILESTREAM erişim düzeyini belirtir.Değer
Açıklama
OFF
Sigara-işlem erişim devre dışı bırakılmıştır.
READONLY
FILESTREAM veri bu veritabanı işlemsel olmayan işlemler tarafından okunabilir.
TAM
Tam işlem dışı erişim için FILESTREAM FileTables etkindir.
DIRECTORY_NAME = <directory_name>
Windows uyumlu dizin adı. Bu ad tüm Database_Directory adları arasında benzersiz olmalıdır SQL Serverörneği. Benzersizlik karşılaştırma duyarlı, ne olursa olsun SQL Serverharmanlama ayarlarını. Bu seçenek bir FileTable bu veritabanı oluşturmadan önce ayarlanmalıdır.
default_fulltext_language = <lcid> | <dil adı> | <dil takma>
Bkz: Varsayılan tam metin dili sunucu yapılandırma seçeneği yapılandırmakBu seçenek tam bir açıklaması için.
default_language = <lcid> | <dil adı> | <dil takma>
Bkz: Varsayılan dil sunucu yapılandırma seçeneği yapılandırmakBu seçenek tam bir açıklaması için.
NESTED_TRIGGERS = {OFF | ON}
Bkz: İç içe Tetikleyiciler sunucu yapılandırma seçeneği yapılandırmakBu seçenek tam bir açıklaması için.
TRANSFORM_NOISE_WORDS = {OFF | ON}
Bkz: Dönüşüm etkisiz sözcükler sunucu yapılandırma seçeneğiBu seçenek tam bir açıklaması için.
TWO_DIGIT_YEAR_CUTOFF = { 2049 | <her yıl 1753 ile 9999 arasında> }
Dört basamaklı bir yıl temsil eden. Varsayılan değer sıfırdır. Bkz: Yapılandırma iki basamaklı yıl kesme sunucu yapılandırma seçeneğiBu seçenek tam bir açıklaması için.
DB_CHAINING { off | ON}
on belirtildiğinde veritabanı kaynak veya geçici veritabanı sahiplik zinciri hedef olabilir.
Ne zaman kapalı, veritabanı geçici veritabanı sahipliği zincir alamaz. Varsayılan değer OFF'tur.
Önemli Örneğini SQL Serverne zaman bu ayarı tanır cross db ownership chainingserver seçeneği 0 (kapalı)'dır. Ne zaman cross db ownership chaining1 (açık), tüm kullanıcı veritabanları, bu seçeneğin değeri bakılmaksızın geçici veritabanı sahipliği zincir katılabilir. Bu seçenek kullanılarak ayarlanır sp_configure.
Bu seçeneği ayarlamak için üyelik sysadminsunucu rolü. Bu sistem veritabanları üzerinde DB_CHAINING seçeneği ayarlanamıyor: master, model, tempdb.
GÜVENİLİR { off | ON}
on belirtildiğinde kimliğe bürünme içerik kullanan veritabanı modülleri (örneğin, görünüm, 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ülleri veritabanı dışındaki kaynaklara erişemez. Varsayılan değer OFF'tur.
Veritabanına bağlı her trustworthy off için ayarlanır.
Varsayılan olarak, tüm sistem veritabanları dışında msdbveritabanı sahip trustworthy aygıtlarım için ayarla İçin değeri değiştirilemez modelve tempdbveritabanları. Sen asla güvenilir seçeneği için on ayarlamanızı öneririz masterveritabanı.
Bu seçeneği ayarlamak için üyelik sysadminsunucu rolü.
for attach [WITH < attach_database_option >
Veritabanı tarafından oluşturulduğunu belirtir ekleme işletim sistemi dosyalarının varolan bir dizi. Olması gerekir bir <filespec> birincil dosya belirten girdi. Sadece diğer <filespec> gerekli girişler o zaman veritabanı ilk sayfasından farklı bir yola sahip tüm dosyaları oluşturulan ya da son bağlı. A <filespec> giriş için bu dosyaların belirtilmesi gerekir.Aşağıdaki attach gerektirir for:
Tüm veri dosyaları (mdf ve ndf) kullanılabilir olması gerekir.
Birden çok günlük dosyası yoksa, tüm kullanılabilir olmaları gerekir.
Okuma ve yazma veritabanı şu anda kullanılamıyor tek bir günlük dosyası varsa ve veritabanı kullanıcıları veya açık hareketler ekleme işleminden önce kapatıldı eklemek için otomatik olarak bir günlük dosyası oluşturur ve birincil dosya güncelleştirir. Birincil dosya güncelleştirilemedi, çünkü aksine, salt okunur bir veritabanı için günlük yeniden olamaz. Bu nedenle, değil bir günlük salt okunur bir veritabanı iliştirdiğinizde, günlük dosyalarını veya for ILIŞTIRIN yan tümcesi dosyalar sağlamanız gerekir.
[!NOT]
Daha yeni bir sürümü tarafından oluşturulmuş bir veritabanı SQL Serverönceki sürümlerde iliştirilemez. Kaynak veritabanı en az olmalıdır versiyonu 90 (SQL Server 2005) eklemek için SQL Server 2012. SQL Server 2005Veritabanı uyumluluk düzeyi 90 olacak, takıldıkları zaman uyumluluk 90 ayarlanması'den küçük olması.
De SQL Server, bağlı olduğu veritabanının parçası tüm tam metin dosyaları veritabanı ile bağlı olacak. Tam metin kataloğu yeni bir yol belirtmek için yeni konumun tam metin işletim sistemi dosya adı olmadan belirtin. Daha fazla bilgi için bkz: örnekleri bölümüne.
İçine bir FILESTREAM seçeneği "Dizin adının" içeren bir veritabanı iliştirme bir SQL Serverörneği isteyecektir SQL ServerDatabase_Directory adı benzersiz olduğunu doğrulamak için. Değilse, ekleme işlemi şu hatayla başarısız "FILESTREAM Database_Directory ad <ad> bu SQL Server örneği içinde benzersiz değil". Bu hata, isteğe bağlı bir parametre önlemek için directory_name, bu işlem içinde aktarılmalıdır.
EKLEMEK için bir veritabanı anlık belirtilemez.
for attach RESTRICTED_USER seçeneğini belirleyebilirsiniz. RESTRICTED_USER yalnızca db_owner sabit veritabanı rolü, dbcreator ve sysadmin sabit sunucu rolü üyeleri için veritabanına bağlanmak için izin verir, ancak onların sayısını sınırlamaz. Girişimleri niteleyici olmayan kullanıcılar tarafından reddedilir.
Veritabanını kullanıyorsa, Service Broker, WITH kullanma <service_broker_option > for ILIŞTIRIN yan tümcesi:
<service_broker_option>
Denetimler Service Brokerileti teslim ve Service BrokerVeritabanı tanıtıcısı. Service BrokerSeçenekler, yalnızca for ILIŞTIRIN yan tümcesi kullanıldığında belirtilebilir.ENABLE_BROKER
Belirleyen Service BrokerBelirtilen veritabanı için etkinleştirilir. İleti teslimi başlamış, ve is_broker_enabledayarlanmış true olarak sys.databasesKatalog görünümü. Varolan veritabanını korur Service Brokertanımlayıcısı.NEW_BROKER
Yeni oluşturur service_broker_guiddeğer hem de sys.databasesve geri yüklenen veritabanı ve temiz elbise ile tüm konuşma bitiş noktaları biter Ayırıcı etkin, ancak konuşma uzak bitiş noktaları için herhangi bir ileti gönderilir. Eski başvuran herhangi bir rota Service Brokertanımlayıcısı-meli var olmak yeni tanımlayıcısı ile yeniden.ERROR_BROKER_CONVERSATIONS
Veritabanı ekli veya geri olduğunu belirten bir hata ile tüm konuşmaları sona erer. Kadar bu işlemi tamamlanmış ve ardından etkin broker devre dışı bırakılır. Varolan veritabanını korur Service Brokertanımlayıcısı.
Müstakil yerine kopyalanan çoğaltılmış veritabanı iliştirdiğinizde, aşağıdakileri dikkate alın:
Veritabanını aynı sunucu örneği ve sürüm özgün veritabanı olarak eklerseniz, hiçbir ek adımlar gereklidir.
Veritabanını aynı sunucu örneğini ekleyebilirsiniz, ancak yükseltilmiş bir sürüm ile yürütme gerekir sp_vupgrade_replication Ekle işlemi tamamlandıktan sonra çoğaltma yükseltmek için.
Veritabanı sürümü ne olursa olsun, farklı sunucu örneği iliştirirseniz yürütme gerekir sp_removedbreplication çoğaltma Ekle işlemi tamamlandıktan sonra kaldırılacak.
[!NOT]
İnşaat ile iliştirmek vardecimaldepolama biçimi, ama SQL Server Veritabanı Altyapısıiçin en azından yükseltilmelidir SQL Server 2005Service Pack 2. Vardecimal depolama biçimi için önceki bir sürümünü kullanarak bir veritabanı eklenemiyor SQL Server. Hakkında daha fazla bilgi için vardecimaldepolama biçimi, bakın Veri Sıkıştırma.
Ne zaman bir veritabanı ilk bağlı veya yeni bir örneği için geri SQL Server, veritabanı ana anahtarı (hizmet ana anahtar tarafından şifrelenmiş) bir kopyası sunucuda henüz saklanmaz. Veritabanı asıl anahtarının (DMK) şifresini çözmek için OPEN MASTER KEY deyimini kullanmalısınız. DMK'nın şifresi çözüldükten sonra, sunucuya DMK'nın hizmet asıl anahtarı (SMK) ile şifrelenmiş bir kopyasını sağlamak üzere gelecekte ALTER MASTER KEY REGENERATE deyimini kullanarak otomatik şifre çözmeyi etkinleştirme seçeneğiniz bulunur. Bir veritabanı daha önceki bir sürümden yükseltildiğinde, daha yeni AES algoritmasını kullanmak üzere DMK'nın yeniden üretilmesi gerekir. DMK'yı yeniden üretme hakkında daha fazla bilgi için, bkz. alter MASTER KEY (Transact-sql). AES'ye yükseltmek üzere DMK anahtarını yeniden üretmek için gereken zaman, DMK tarafından korunan nesnelerin sayısına bağlıdır. DMK anahtarının AES'ye yükseltmek üzere yalnızca bir kez yeniden üretilmesi gerekir ve bunun anahtar dönüşüm stratejisinin bir parçası olarak gelecekte yapılacak yeniden üretmeler üzerinde hiçbir etkisi yoktur. Bir veritabanı kullanarak yükseltme hakkında bilgi eklemek, bakın Yükseltme veritabanı kullanma bağlantısını kesin ve (Transact-sql) Ekle.
Güvenlik notu öneririz veritabanları bilinmeyen veya güvenilmeyen kaynaklardan gelen eklediğiniz değil ki. Bu tür veritabanlarının idam kötü amaçlı kod içerebilir istenmeyen Transact-SQLkod veya şema veya fiziksel veritabanı yapısını değiştirerek hatalara neden. Bilinmeyen veya güvenilmeyen kaynağından veritabanı kullanmadan önce çalıştırmak dbcc checkdb bir benzerini sunucuda veritabanı ve saklı yordamlar veya veritabanındaki diğer kullanıcı tanımlı kod gibi bir kod da inceleyin.
[!NOT]
trustworthy ve DB_CHAINING seçenekleri var. herhangi bir etkisi ne zaman bir veritabanı iliştirme.
ATTACH_REBUILD_LOG İÇİN
Veritabanı tarafından oluşturulduğunu belirtir ekleme işletim sistemi dosyalarının varolan bir dizi. Bu seçenek veritabanı okuma sınırlıdır. Olması gerekir bir <filespec>birincil dosya belirtme girdi. Bir veya daha fazla işlem günlük dosyaları eksikse, günlük dosyası yeniden oluşturulur. ATTACH_REBUILD_LOG otomatik olarak yeni, 1 mb günlük dosyası oluşturur. Bu dosya varsayılan günlük dosyası konumuna yerleştirilir. Bu konumu hakkında daha fazla bilgi için bkz: Görüntülemek veya veri ve günlük dosyaları (SQL Server Management Studio'yu) için varsayılan konumlarını değiştirme.[!NOT]
Günlük dosyaları varsa, Veritabanı Altyapısıdosyaları, günlük dosyalarının yeniden yerine kullanır.
Aşağıdaki ATTACH_REBUILD_LOG gerektirir for:
Veritabanı temiz bir kapatma.
Tüm veri dosyaları (mdf ve ndf) kullanılabilir olması gerekir.
Önemli Bu işlem günlüğünü yedekleme zincirini keser. İşlem tamamlandıktan sonra tam veritabanı yedeklemesi gerçekleştirilmesi önerilir. Daha fazla bilgi için, bkz. Yedekleme (Transact-sql).
Genellikle, for ATTACH_REBUILD_LOG başka bir sunucuya kopyalama çoğunlukla kullanılacağı veya yalnızca, okuma işlemleri için okuma ve yazma veritabanı ile büyük bir günlük kopyalarken kullanılır ve bu nedenle özgün veritabanına daha az günlük alanı gerektirir.
ATTACH_REBUILD_LOG için bir veritabanı anlık belirtilemez.
Veritabanı ayırma ve iliştirme hakkında daha fazla bilgi için bkz: Veritabanı bağlantısını kesin ve (SQL Server) iliştirme.
<dosyabelirtimi>
Dosya özelliklerini denetler.@name = logical_file_name ''
Dosyanın mantıksal adını belirtir. Dosya adı, except for ILIŞTIRIN yan tümceleri belirtme zaman belirtildiğinde adı gereklidir. Birincil FILESTREAM filegroup adlandırılamaz.- logical_file_name
Kullanılan mantıksal bir ad SQL Serverdosyayı başvururken. Logical_file_nameveritabanı içinde benzersiz olmalı ve için olan kurallara uymak tanımlayıcıları. Ad, bir karakter veya Unicode sabit veya düzenli ya da ayrılmış tanımlayıcı olabilir.
- logical_file_name
Dosya adı { 'os_file_name' | 'filestream_path' }
İşletim sistemi (fiziksel) dosya adını belirtir.'os_file_name'
Dosyayı oluşturduğunuzda yolu ve dosya adını işletim sistemi tarafından kullanılır. Dosyayı aşağıdaki aygıtlardan biri bulunmalı: Yerel sunucuyu SQL Serveryüklenir, depolama alanı ağı [san] veya iSCSI tabanlı bir ağdaki. Belirtilen yol, create database deyimi yürütülmeden önce varolmalıdır. Daha fazla bilgi için bkz: "Veritabanı dosyaları ve Filegroups" Açıklamalar bölümünde.Dosya için bir unc yolu belirtilmediğinde SIZE, MAXSIZE ve FILEGROWTH parametreleri ayarlanamıyor.
Dosya ham bir bölüme ise os_file_nameHam bir bölüm yalnızca sürücü harfini belirtmeniz gerekir. Ham her bölümde tek bir veri dosyası oluşturulabilir.
Dosyaları salt okunur ikincil dosyalar veya veritabanı salt okunur veri dosyaları sıkıştırılmış dosya sistemlerinde koymayın. Günlük dosyaları hiçbir zaman sıkıştırılmış dosya sistemlerinde koymak gerekir.
'filestream_path'
FILESTREAM filegroup için DosyaAdı FILESTREAM verilerin saklanacağı bir yola başvurur. Son klasörü kadar yolu var olmalıdır ve son klasörü değil bulunmalıdır. Örneğin, C:\MyFiles\MyFilestreamData yolu belirtirseniz, C:\MyFiles alter database çalıştırmanızdan önce bulunmalıdır, ancak MyFilestreamData klasörü olmaması gereken.Dosya ve filegroup (<filespec>) aynı deyiminde oluşturulmalıdır.
Boyut ve FILEGROWTH özelliklerini FILESTREAM filegroup için geçerli değildir.
BOYUTUsize
Dosya boyutunu belirtir.Boyut olamaz ne zaman belirtilen os_file_namebir unc yolu belirtilen Boyut için FILESTREAM filegroup geçerli değildir.
size
İlk dosya boyutudur.Ne zaman sizebirincil dosya için sağlanan Veritabanı Altyapısıbirincil dosya boyutunu kullanır modelveritabanı. Bir ikincil veri dosyası veya günlük dosyası belirtilirse, ama size Dosya için belirtilen Veritabanı AltyapısıDosya yapar 1 mb. Birincil dosya en az birincil dosyası olarak büyük olmalıdır için belirtilen boyut modelveritabanı.
Kilobayt (kb), megabayt (mb), gigabayt (gb) veya terabayt (tb) sonekleri kullanılabilir. Varsayılan değer MB'dir. Tam sayı belirtin; ondalık eklemeyin. Sizebir tamsayı değeridir. 2147483647 Büyük değerler, 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_namebir unc yolu belirtilen- max_size
En büyük dosya boyutundadır. kb, mb, gb, tb ve sonekler kullanılabilir. Varsayılan değer MB'dir. Tam sayı belirtin; ondalık eklemeyin. Eğer max_sizebelirtilmezse, dosya, disk dolu olduğu kadar yetişir. Max_sizebir tamsayı değeridir. 2147483647 Büyük değerler, daha büyük birimler kullanın.
- max_size
SINIRSIZ
Disk dolu olduğu kadar dosya büyüdükçe belirtir. De SQL Server, sınırsız büyüme ile belirtilen günlük dosyası boyutu 2 olan tb ve bir veri dosyası olan en büyük boyutu 16 tb.[!NOT]
Bu seçenek için FILESTREAM kapsayıcı belirtildiğinde maksimum boyut yoktur. Disk dolu olduğu kadar büyümeye devam ediyor.
FILEGROWTHgrowth_increment
Otomatik büyüme artışı dosyası belirtir. FILEGROWTH ayar dosyasının MAXSIZE ayarı geçemez. FILEGROWTH olamaz ne zaman belirtilen os_file_namebir unc yolu belirtilen FILEGROWTH FILESTREAM filegroup için geçerli değildir.growth_increment
Yeni alanı her zaman dosyaya eklenen boşluk miktarıdır.Değer, mb, kb, gb, tb veya yüzde (%) olarak belirtilebilir. Bir sayıyı bir mb, kb veya % sonek belirtilirse, varsayılan değer MB'dir. % Belirtildiğinde, büyüme artışı dosyasının boyutunu belirtilen yüzdesi artışı gerçekleşir zaman 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 verilmez gösterir.
FILEGROWTH belirtilmezse, varsayılan değer 1 mb veri dosyalarının ve günlük dosyalarının % 10, ve minimum değeri 64 KB'dir.
[!NOT]
De SQL Server, veri dosyaları için varsayılan büyüme artışı % 10 için 1 mb değişti. % 10 Günlük dosyası varsayılan değişmeden kalır.
<Filegroup>
Dosya grubu özelliklerini denetler. Filegroup veritabanı anlık üzerinde belirtilemez.FILEGROUPfilegroup_name
Filegroup mantıksal adıdır.filegroup_name
filegroup_nameveritabanı içinde benzersiz olmalıdır ve sistem tarafından sağlanan adı İlköğretim ve PRIMARY_LOG olamaz. Ad, bir karakter veya Unicode sabit veya düzenli ya da ayrılmış tanımlayıcı olabilir. Adı kuralları uymanız gerekir tanımlayıcıları.FILESTREAM İÇERİR
Filegroup FILESTREAM büyük ikili nesneler (BLOB'lar) dosya sisteminde depolar belirtir.DEFAULT
Varsayılan filegroup veritabanı adlı filegroup belirtir.
database_snapshot_name
Yeni veritabanı anlık adıdır. Veritabanı anlık görüntü adları örneği içinde benzersiz olması gerekir SQL Serverve tanımlayıcıları kuralları uymanız. database_snapshot_nameen fazla 128 karakter olabilir.ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]
Bir veritabanı oluşturmak için anlık belirtir dosyaların listesini kaynak veritabanında. Anlık çalışması, 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ı anlık tarafından desteklenmez. FILESTREAM veri dosyası bir create database on yan tümcesinde yer alıyorsa, deyimi başarısız olur ve bir hata yükseltilmiş.ADINI, dosya adını ve değerlerine açıklamalarını eşdeğer açıklamalarını görmek için <filespec> değerler.
[!NOT]
Veritabanı anlık, diğer oluşturduğunuzda <filespec> seçenekleri ve birincil anahtar izin verilmedi.
ANLIK OLARAKsource_database_name
Oluşturulan veritabanı tarafından belirtilen kaynak veritabanı veritabanı anlık olduğunu belirtir source_database_name. Anlık görüntü ve kaynak veritabanını aynı örnek üzerinde olmalıdır.Daha fazla bilgi için bkz: "Veritabanı anlık" Açıklamalar bölümünde.
Açıklamalar
Ana veritabanı yedeklemesi gerekir ne zaman bir kullanıcı veritabanı oluşturulduğunda, bırakılan veya.
create database deyimi autocommit modunda (varsayılan işlem yönetimi modu) çalıştırması ve açık veya örtülü bir hareket içinde izin verilmez.
Bir veritabanı oluşturup veritabanını depolayan dosyalar için bir create database deyimini kullanabilirsiniz. SQL Servercreate database deyimi aşağıdaki adımları kullanarak uygular:
SQL ServerBir kopyasını kullanan model veritabanını veritabanı ve meta verileri başlatılamadı.
Hizmet broker GUID veritabanı atanır.
Veritabanı AltyapısıSonra iç veri alanı veritabanında nasıl kullanıldığını kaydeden sahip sayfalar haricinde boş sayfaları ile veritabanı geri kalanını doldurur.
En fazla 32.767 veritabanları örneğinde belirtilen SQL Server.
Her veritabanı, veritabanı içinde özel etkinlikler gerçekleştiren bir sahibi vardır. Veritabanı oluşturan kullanıcı sahibidir. Veritabanı sahibi kullanılarak değiştirilebilir sp_changedbowner.
Veritabanı dosyaları ve Filegroups
En az iki dosyaları, her veritabanı olan bir birincil dosya ve bir işlem günlük dosyasıve en az bir dosya grubu. En fazla 32.767 dosyaları ve 32.767 filegroups her veritabanı için belirtilebilir.
Bir veritabanı oluşturduğunuzda, veri dosyalarına kadar büyük veritabanında beklediğiniz veri miktarı üst sınırıdır dayalı yapmak
Depolanması için bir depolama alanı ağı (san), iSCSI tabanlı ağ veya yerel olarak bağlı olan disklere kullanmanızı öneririz, SQL ServerBu yapılandırma en iyi hale getirir çünkü veritabanı dosyaları SQL Serverperformans ve güvenilirlik.
Veritabanı anlık görüntüleri
create database deyimi, statik salt okunur bir görünüm oluşturmak için kullanabileceğiniz bir veritabanı anlık , kaynak veritabanı. Veritabanı anlık görüntü işlem kaynak veritabanı ile tutarlı olarak anlık oluşturulduğu zaman vardı. Kaynak veritabanındaki birden çok anlık olabilir.
[!NOT]
Veritabanı anlık görüntüsü oluşturduğunuzda, create database deyimi dosyaları ve geçersiz dosyalarını geri yükleme günlük dosyalarının, çevrimdışı dosyalar, başvuru yapamazsınız.
Veritabanı snapshot oluşturma başarısız olursa, anlık görüntüsünü şüpheli olur ve silinmesi gerekir. Daha fazla bilgi için, bkz. Veritabanı (Transact-sql) bırak.
drop database kullanarak silinene kadar her anlık devam ederse.
Daha fazla bilgi için, bkz. Anlık görüntüleri veritabanı (SQL Server).
Veritabanı seçenekleri
Bir veritabanı oluşturduğunuzda birkaç veritabanı seçeneği otomatik olarak ayarlanır. Bu seçeneklerin listesi için bkz: alter database set seçenekleri (Transact-sql).
Modeli veritabanı ve yeni veritabanları oluşturma
Tüm kullanıcı tanımlı nesneler model veritabanını tüm yeni oluşturulan veritabanlarına kopyalanır. Sen-ebilmek eklemek tablolar, görünümler, saklı yordamlar, veri türleri ve benzeri gibi herhangi bir nesne için modeltüm yeni eklenecek veritabanı oluşturulmuş veritabanları.
create database ne zaman database_namedeyimi ek boyutu parametreleri belirtilirse, birincil veri dosyası birincil dosyasında aynı boyutta yapılan modelveritabanı.
for attach belirtilmediği sürece, her yeni veritabanı veritabanı seçeneği ayarlarını devralır modelveritabanı. Örneğin, veritabanı seçeneği auto shrinkayarı truede modelve oluşturduğunuz tüm yeni veritabanları. Seçeneklerini değiştirirseniz, modelveritabanı, bu yeni seçenek ayarları, oluşturduğunuz tüm yeni veritabanlarında kullanılır. Değiştirme işlemleri modelveritabanı, varolan veritabanları etkilemez. EKLEMEK için create database deyimi üzerinde belirtilirse, yeni veritabanını özgün veritabanının veritabanı seçeneği ayarlarını devralır.
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. Daha fazla bilgi için, bkz. Sistem görünümleri (Transact-sql).
İzinler
create database, any database create veya alter any database izni gerektirir.
Disk kullanımı üzerinde denetimi örneği korumak için SQL Server, veritabanları oluşturma izni genellikle birkaç oturum açma hesaplarıyla sınırlı.
Veri ve günlük dosyaları izinlerini
De SQL Server, belirli izinler her veritabanı veri ve günlük dosyalarının. Aşağıdaki işlemleri veritabanına uygulandığında aşağıdaki izinleri ayarlanır:
Oluşturulma |
Yeni bir dosya eklemek için |
Ekli |
Yedeklenen |
Müstakil |
Geri |
İzinler, Aç izinlerine sahip bir dizinde bulunuyorsa yanlışlıkla değiştirilmiş gelen dosyaları engeller.
[!NOT]
Microsoft SQL Server 2005 Express Editionveri kümesi değildir ve dosya izinleri oturum.
Örnekler
A.Veritabanı dosyaları belirtmeden oluşturma
Aşağıdaki örnek, veritabanı oluşturur mytestve karşılık gelen birincil ve işlem günlük dosyası oluşturur. Çünkü deyimi no <filespec> öğeleri, birincil veritabanı dosyası olan boyutunu modelveritabanı birincil dosya. İşlem günlüğü büyük için ayarlanmış bu değerler: 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, mytestveritabanı.
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 işlem günlük dosyaları belirtir.
Aşağıdaki örnek, veritabanı oluşturur Sales. BİRİNCİL olmayan anahtar kullanıldığından, ilk dosya (Sales_dat) birincil dosya olur. Çünkü ne mb, ne de kb boyutu parametresi için belirtilen Sales_ dat dosyası, o mb kullanır ve megabayt cinsinden ayrılan. Sales_ log Dosyası, megabayt cinsinden ayrılır, çünkü MBsoneki belirtilen açıkça SIZEparametresi.
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.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 Archivesahip olan üç 100-MBveri dosyaları ve iki 100-MBişlem günlüğü dosyaları. Birincil dosya listesinde ilk dosyadır ve açıkça ile belirtilen PRIMARYanahtar. İşlem günlüğü dosyalarını aşağıdaki belirtilen LOG ONanahtar. Dosyalar için kullanılan uzantıları Not FILENAMEseçeneği: .mdfbirincil veri dosyaları için kullanılan .ndfikincil veri dosyaları için kullanılır ve .ldfişlem günlük dosyaları için kullanılır. Bu örnek veritabanı yerleştirir D:ile yerine sürücü masterveritabanı.
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
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.Filegroups olan bir veritabanı oluşturma
Aşağıdaki örnek, veritabanı oluşturur SalesAşağıdaki filegroups olan:
Birincil filegroup dosyalarında Spri1_ dat ve Spri2_dat. FILEGROWTH artışlarla bu dosyalar olarak belirtilen 15%.
Adlı filegroup SalesGroup1dosyaları ile SGrp1Fi1ve SGrp1Fi2.
Adlı filegroup SalesGroup2dosyaları ile SGrp2Fi1ve 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
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ı iliştirme
Aşağıdaki örnek veritabanı ucun Archived oluşturulan ve sonra bunu kullanarak verdiği FOR ATTACHyan. Archivebirden çok veri için tanımlanmış ve günlük dosyaları. Çünkü dosyalarının konumunu oluşturulduklarından bu yana değişmiş değil, ancak yalnızca birincil dosya belirtilmesi vardır FOR ATTACHtümcesi. İle başlayan SQL Server 2005, bağlı olduğu veritabanının parçası tüm tam metin dosyaları veritabanı ile bağlı olacak.
USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
ON (FILENAME = 'D:\SalesData\archdat1.mdf')
FOR ATTACH ;
GO
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ü oluşturma
Aşağıdaki örnek, veritabanı anlık görüntü oluşturur sales_snapshot0600. Veritabanı anlık salt okunur olduğundan, bir günlük dosyası belirtilemez. Sözdizimi ile uyumluluk, kaynak veritabanının her dosyada belirtilir ve filegroups belirtilmedi.
Bu örnek için kaynak veritabanı Salesveritabanı 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
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 TRUSTYWORTHYve DB_CHAININGseçeneklerini ayarlamak 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 iliştirme
Aşağıdaki örnek tam metin kataloğu ekler AdvWksFtCatile birlikte AdventureWorks2012veri ve günlük dosyaları. Bu örnekte, tam metin kataloğu varsayılan konumundan yeni bir konuma taşınmış c:\myFTCatalogs. Veri ve günlük dosyaları varsayılan konumlarına kalır.
USE master;
GO
--Detach the AdventureWorks2012 database
sp_detach_db AdventureWorks2012;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2012 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2012 ON
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_data.mdf'),
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_log.ldf'),
(FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO
USE master;
GO
--Detach the AdventureWorks2012 database
sp_detach_db AdventureWorks2012;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2012 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2012 ON
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_data.mdf'),
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_log.ldf'),
(FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO
I.Bir satır filegroup ve iki FILESTREAM filegroups oluşturma belirtir
Aşağıdaki örnek oluşturur FileStreamDBveritabanı. Veritabanı, bir satır filegroup ve iki FILESTREAM filegroups ile oluşturulur. Her filegroup bir dosya içerir:
FileStreamDB_datasatır verileri içerir. Bir dosyayı içeren FileStreamDB_data.mdfvarsayılan yolu ile
FileStreamPhotosFILESTREAM veri içerir. Bir FILESTREAM veri kapsayıcısı, içerdiği FSPhotos, yer C:\MyFSfolder\Photos. Varsayılan FILESTREAM filegroup işaretlenir.
FileStreamResumesFILESTREAM veri içerir. Bir FILESTREAM veri kapsayıcısı, içerdiği FSResumes, yer C:\MyFSfolder\Resumes.
USE master;
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''
-- SIZEand FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
),
(
NAME = FSPhotos2
, FILENAME = ''D:\MyFSfolder\Photos''
, MAXSIZE = 10000 MB
),
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
USE master;
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''
-- SIZEand FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
),
(
NAME = FSPhotos2
, FILENAME = ''D:\MyFSfolder\Photos''
, MAXSIZE = 10000 MB
),
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
Ayrıca bkz.
Başvuru
alter veritabanı (Transact-sql)
Veritabanı (Transact-sql) bırak
sp_changedbowner (Transact-sql)
sp_removedbreplication (Transact-sql)
Kavramlar
Veritabanı bağlantısını kesin ve (SQL Server) iliştirme
Anlık görüntüleri veritabanı (SQL Server)
İkili büyük nesne (Blob) veri (SQL Server)