BUAT DATABASE
Membuat database baru.
Pilih salah satu tab berikut untuk sintaks, argumen, keterangan, izin, dan contoh untuk versi SQL tertentu yang sedang Anda kerjakan.
Pilih produk
Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.
* SQL Server *
SQL Server
Gambaran Umum
Di SQL Server, pernyataan ini membuat database baru dan file yang digunakan dan grup file mereka. Ini juga dapat digunakan untuk membuat rekam jepret database, atau melampirkan file database untuk membuat database dari file yang terlepas dari database lain.
Sintaks
Membuat database.
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
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 }
| PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='<Filepath to folder on DAX formatted volume>' )
| LEDGER = {ON | OFF }
}
<filestream_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
| DIRECTORY_NAME = 'directory_name'
}
<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 ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
<filespec> [ ,...n ]
}
Melampirkan database
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
| ATTACH_REBUILD_LOG }
[;]
<attach_database_option> ::=
{
<service_broker_option>
| RESTRICTED_USER
| FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}
<service_broker_option> ::=
{
ENABLE_BROKER
| NEW_BROKER
| ERROR_BROKER_CONVERSATIONS
}
Membuat rekam jepret database
CREATE DATABASE database_snapshot_name
ON
(
NAME = logical_file_name,
FILENAME = 'os_file_name'
) [ ,...n ]
AS SNAPSHOT OF
[;]
Argumen
database_name
Ini adalah nama database baru. Nama database harus unik dalam instans SQL Server dan mematuhi aturan untuk pengidentifikasi.
database_name bisa maksimal 128 karakter, kecuali nama logis tidak ditentukan untuk file log. Jika nama file logis tidak ditentukan, SQL Server menghasilkan logical_file_name dan os_file_name untuk log dengan menambahkan akhiran ke database_name. Ini membatasi database_name hingga 123 karakter sehingga nama file logis yang dihasilkan tidak lebih dari 128 karakter.
Jika nama file data tidak ditentukan, SQL Server menggunakan database_name sebagai logical_file_name dan sebagai os_file_name. Jalur default diperoleh dari registri. Jalur default dapat diubah di Properti Server (Halaman Pengaturan Database) di Management Studio. Mengubah jalur default memerlukan menghidupkan ulang SQL Server.
CONTAINMENT = { NONE | PARSIAL }
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Menentukan status penahanan database. NONE = database yang tidak terkandung. PARTIAL = database yang terkandung sebagian.
AKTIF
Menentukan bahwa file disk yang digunakan untuk menyimpan bagian data database, file data, ditentukan secara eksplisit. ON diperlukan ketika diikuti oleh daftar <item filespec> yang dipisahkan koma yang menentukan file data untuk grup file utama. Daftar file dalam grup file utama dapat diikuti oleh daftar <item grup file> opsional yang dipisahkan koma yang menentukan grup file pengguna dan file mereka.
PRIMARY
Menentukan bahwa daftar filespec> terkait <menentukan file utama. File pertama yang ditentukan dalam <entri filespec> di grup file utama menjadi file utama. Database hanya dapat memiliki satu file utama. Untuk informasi selengkapnya, lihat File Database dan Grup File.
Jika PRIMARY tidak ditentukan, file pertama yang tercantum dalam pernyataan CREATE DATABASE menjadi file utama.
LOG MASUK
Menentukan bahwa file disk yang digunakan untuk menyimpan log database, file log, ditentukan secara eksplisit. LOG ON diikuti oleh daftar <item filespec> yang dipisahkan koma yang menentukan file log. Jika LOG ON tidak ditentukan, satu file log secara otomatis dibuat, yang memiliki ukuran 25 persen dari jumlah ukuran semua file data untuk database, atau 512 KB, mana yang lebih besar. File ini ditempatkan di lokasi file log default. Untuk informasi tentang lokasi ini, lihat Menampilkan atau Mengubah Lokasi Default untuk Data dan File Log di SSMS.
LOG ON tidak dapat ditentukan pada rekam jepret database.
MENYUSUN collation_name
Menentukan kolatasi default untuk database. Nama kolase dapat berupa nama kolase Windows atau nama kolase SQL. Jika tidak ditentukan, database diberi kolase default instans SQL Server. Nama kolase tidak dapat ditentukan pada rekam jepret database.
Nama kolase tidak dapat ditentukan dengan klausa FOR ATTACH atau FOR ATTACH_REBUILD_LOG. Untuk informasi tentang cara mengubah kolase database terlampir, kunjungi situs Web Microsoft ini.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, lihat COLLATE.
Catatan
Database yang terkandung disusun secara berbeda dari database yang tidak terkandung. Untuk informasi selengkapnya, lihat Kolase Database Terkandung.
Opsi WITH <>
<filestream_option>
NON_TRANSACTED_ACCESS = { NONAKTIF | READ_ONLY | PENUH }
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.
Menentukan tingkat akses FILESTREAM non-transaksi ke database.
Nilai | Deskripsi |
---|---|
OFF |
Akses non-transaksional dinonaktifkan. |
READONLY |
Data FILESTREAM dalam database ini dapat dibaca oleh proses non-transaksi. |
FULL |
Akses non-transaksi penuh ke FILESTREAM FileTables diaktifkan. |
DIRECTORY_NAME = <directory_name>
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Nama direktori yang kompatibel dengan windows. Nama ini harus unik di antara semua nama Database_Directory dalam instans SQL Server. Perbandingan keunikan tidak peka huruf besar/kecil, terlepas dari pengaturan kolase SQL Server. Opsi ini harus diatur sebelum Anda membuat FileTable dalam database ini.
Opsi berikut hanya diperbolehkan ketika CONTAINMENT telah diatur ke PARSIAL. Jika CONTAINMENT diatur ke NONE, kesalahan akan terjadi.
DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <nama> bahasa | <alias bahasa>
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Lihat Mengonfigurasi Opsi Konfigurasi Server bahasa teks lengkap default untuk deskripsi lengkap opsi ini.
DEFAULT_LANGUAGE = <lcid> | <nama> bahasa | <alias bahasa>
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Lihat Mengonfigurasi Opsi Konfigurasi Server bahasa default untuk deskripsi lengkap opsi ini.
NESTED_TRIGGERS = { NONAKTIF | ON }
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Lihat Mengonfigurasi pemicu berlapis Opsi Konfigurasi Server untuk deskripsi lengkap opsi ini.
TRANSFORM_NOISE_WORDS = { NONAKTIF | ON }
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru
Lihat mengubah kata bising Opsi Konfigurasi Server untuk deskripsi lengkap opsi ini.
TWO_DIGIT_YEAR_CUTOFF = { 2049 | <setiap tahun antara 1753 dan 9999> }
Empat digit mewakili setahun. 2049 adalah nilai default. Lihat Mengonfigurasi Opsi Konfigurasi Server cutoff dua digit tahun untuk deskripsi lengkap opsi ini.
DB_CHAINING { NONAKTIF | ON }
Ketika ON ditentukan, database dapat menjadi sumber atau target rantai kepemilikan lintas database.
Saat NONAKTIF, database tidak dapat berpartisipasi dalam rantai kepemilikan lintas database. Defaultnya adalah NONAKTIF.
Penting
Instans SQL Server akan mengenali pengaturan ini ketika opsi server rantai kepemilikan silang db adalah 0 (NONAKTIF). Ketika rantai kepemilikan lintas db adalah 1 (AKTIF), semua database pengguna dapat berpartisipasi dalam rantai kepemilikan lintas database, terlepas dari nilai opsi ini. Opsi ini diatur dengan menggunakan sp_configure.
Untuk mengatur opsi ini, memerlukan keanggotaan dalam peran server tetap sysadmin. Opsi DB_CHAINING tidak dapat diatur pada database sistem ini: master
, , model
tempdb
.
DAPAT DIPERCAYA { NONAKTIF | ON }
Ketika ON ditentukan, modul database (misalnya, tampilan, fungsi yang ditentukan pengguna, atau prosedur tersimpan) yang menggunakan konteks peniruan dapat mengakses sumber daya di luar database.
Saat NONAKTIF, modul database dalam konteks peniruan tidak dapat mengakses sumber daya di luar database. Defaultnya adalah NONAKTIF.
TRUSTWORTHY diatur ke NONAKTIF setiap kali database dilampirkan.
Secara default, semua database sistem kecuali msdb
database memiliki TRUSTWORTHY yang diatur ke NONAKTIF. Nilai tidak dapat diubah untuk model
database dan tempdb
. Kami menyarankan agar Anda tidak pernah mengatur opsi TRUSTWORTHY ke AKTIF untuk master
database.
PERSISTENT_LOG_BUFFER=AKTIF ( DIRECTORY_NAME='' )
Ketika opsi ini ditentukan, buffer log transaksi dibuat pada volume yang terletak di perangkat disk yang didukung oleh Storage Class Memory (penyimpanan nonvolatile NVDIMM-N), juga dikenal sebagai buffer log persisten. Untuk informasi selengkapnya, lihat Akselerasi latensi Penerapan Transaksi menggunakan Memori Kelas Penyimpanan. Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru.
LEDGER = {ON | NONAKTIF }
Ketika diatur ke ON
, ia membuat database ledger, di mana integritas semua data pengguna dilindungi. Hanya tabel ledger yang dapat dibuat dalam database ledger. Default adalah OFF
. Nilai LEDGER
opsi tidak dapat diubah setelah database dibuat. Untuk informasi selengkapnya, lihat Mengonfigurasi database ledger.
BUAT DATABASE ... UNTUK LAMPIRKAN [ DENGAN < attach_database_option > ]
Menentukan bahwa database dibuat dengan melampirkan sekumpulan file sistem operasi yang ada. Harus <ada entri filespec> yang menentukan file utama. Satu-satunya entri filespec> lain <yang diperlukan adalah untuk file apa pun yang memiliki jalur berbeda dari saat database pertama kali dibuat atau terakhir dilampirkan. Entri <filespec> harus ditentukan untuk file-file ini.
FOR ATTACH memerlukan hal berikut:
- Semua file data (MDF dan NDF) harus tersedia.
- Jika ada beberapa file log, semuanya harus tersedia.
Jika database baca/tulis memiliki satu file log yang saat ini tidak tersedia, dan jika database dimatikan tanpa pengguna atau membuka transaksi sebelum ATTACH
operasi, FOR ATTACH
secara otomatis membangun ulang file log dan memperbarui file utama. Sebaliknya, untuk database baca-saja, log tidak dapat dibangun kembali karena file utama tidak dapat diperbarui. Oleh karena itu, ketika Anda melampirkan database baca-saja dengan log yang tidak tersedia, Anda harus menyediakan file log, atau file dalam klausa FOR ATTACH.
Catatan
Database yang dibuat oleh versi SQL Server yang lebih baru tidak dapat dilampirkan dalam versi yang lebih lama.
Di SQL Server, file teks lengkap apa pun yang merupakan bagian dari database yang sedang dilampirkan akan dilampirkan dengan database. Untuk menentukan jalur baru katalog teks lengkap, tentukan lokasi baru tanpa nama file sistem operasi teks lengkap. Untuk informasi selengkapnya, lihat bagian Contoh.
Melampirkan database yang berisi opsi FILESTREAM dari "Nama direktori", ke dalam instans SQL Server akan meminta SQL Server untuk memverifikasi bahwa nama Database_Directory unik. Jika tidak, ATTACH
operasi gagal dengan kesalahan, FILESTREAM Database_Directory name is not unique in this SQL Server instance
. Untuk menghindari kesalahan ini, parameter opsional, directory_name, harus diteruskan ke operasi ini.
FOR ATTACH tidak dapat ditentukan pada rekam jepret database.
FOR ATTACH dapat menentukan opsi RESTRICTED_USER. RESTRICTED_USER hanya memungkinkan anggota peran database tetap db_owner dan peran server tetap dbcreator dan sysadmin untuk terhubung ke database, tetapi tidak membatasi jumlahnya. Upaya oleh pengguna yang tidak memenuhi syarat ditolak.
<service_broker_option>
Jika database menggunakan Service Broker, gunakan with <service_broker_option> dalam klausa FOR ATTACH Anda:
Mengontrol pengiriman pesan Service Broker dan pengidentifikasi Service Broker untuk database. Opsi Service Broker hanya dapat ditentukan ketika klausul FOR ATTACH digunakan.
ENABLE_BROKER
Menentukan bahwa Service Broker diaktifkan untuk database yang ditentukan. Artinya, pengiriman pesan dimulai, dan is_broker_enabled
diatur ke true dalam sys.databases
tampilan katalog. Database mempertahankan pengidentifikasi Service Broker yang ada.
NEW_BROKER
Membuat nilai baru service_broker_guid
di database yang dipulihkan sys.databases
dan dipulihkan. Mengakhiri semua titik akhir percakapan dengan pembersihan. Broker diaktifkan, tetapi tidak ada pesan yang dikirim ke titik akhir percakapan jarak jauh. Rute apa pun yang mereferensikan pengidentifikasi Service Broker lama harus dibuat ulang dengan pengidentifikasi baru.
ERROR_BROKER_CONVERSATIONS
Mengakhiri semua percakapan dengan kesalahan yang menyatakan bahwa database dilampirkan atau dipulihkan. Broker dinonaktifkan sampai operasi ini selesai dan kemudian diaktifkan. Database mempertahankan pengidentifikasi Service Broker yang ada.
Saat Anda melampirkan database yang direplikasi yang disalin alih-alih dilepas, pertimbangkan:
- Jika Anda melampirkan database ke instans dan versi server yang sama dengan database asli, tidak ada langkah tambahan yang diperlukan.
- Jika Anda melampirkan database ke instans server yang sama tetapi dengan versi yang ditingkatkan, Anda harus menjalankan sp_vupgrade_replication untuk meningkatkan replikasi setelah operasi lampirkan selesai.
- Jika Anda melampirkan database ke instans server yang berbeda, terlepas dari versinya, Anda harus menjalankan sp_removedbreplication untuk menghapus replikasi setelah operasi lampirkan selesai.
Catatan
Lampirkan bekerja dengan format penyimpanan vardecimal , tetapi Mesin Database SQL Server harus ditingkatkan ke setidaknya SQL Server 2005 (9.x) SP2. Anda tidak dapat melampirkan database menggunakan format penyimpanan vardecimal ke versi SQL Server yang lebih lama. Untuk informasi selengkapnya tentang format penyimpanan vardecimal , lihat Kompresi Data.
Ketika database pertama kali dilampirkan atau dipulihkan ke instans baru SQL Server, salinan kunci master database (dienkripsi oleh kunci master layanan) belum disimpan di server. Anda harus menggunakan OPEN MASTER KEY
pernyataan untuk mendekripsi kunci master database (DMK). Setelah DMK didekripsi, Anda memiliki opsi untuk mengaktifkan dekripsi otomatis di masa depan dengan menggunakan ALTER MASTER KEY REGENERATE
pernyataan untuk menyediakan server dengan salinan DMK, dienkripsi dengan kunci master layanan (SMK). Ketika database telah ditingkatkan dari versi yang lebih lama, DMK harus diregenerasi untuk menggunakan algoritma AES yang lebih baru. Untuk informasi selengkapnya tentang meregenerasi DMK, lihat MENGUBAH KUNCI MASTER. Waktu yang diperlukan untuk meregenerasi kunci DMK untuk meningkatkan ke AES tergantung pada jumlah objek yang dilindungi oleh DMK. Meregenerasi kunci DMK untuk meningkatkan ke AES hanya diperlukan sekali, dan tidak berpengaruh pada regenerasi di masa mendatang sebagai bagian dari strategi rotasi kunci. Untuk informasi tentang cara memutakhirkan database dengan menggunakan lampiran, lihat Meningkatkan Database Menggunakan Lepaskan dan Lampirkan.
Penting
Kami menyarankan agar Anda tidak melampirkan database dari sumber yang tidak diketahui atau tidak tepercaya. Database tersebut dapat berisi kode berbahaya yang mungkin menjalankan kode Transact-SQL yang tidak diinginkan atau menyebabkan kesalahan dengan memodifikasi skema atau struktur database fisik. Sebelum Anda menggunakan database dari sumber yang tidak diketahui atau tidak tepercaya, jalankan DBCC CHECKDB pada database di server nonproduksi, dan juga periksa kode, seperti prosedur tersimpan atau kode lain yang ditentukan pengguna, dalam database.
Catatan
Opsi TRUSTWORTHY dan DB_CHAINING tidak berpengaruh saat melampirkan database.
UNTUK ATTACH_REBUILD_LOG
Menentukan bahwa database dibuat dengan melampirkan sekumpulan file sistem operasi yang ada. Opsi ini terbatas pada database baca/tulis. Harus <ada entri filespec yang> menentukan file utama. Jika satu atau beberapa file log transaksi hilang, file log akan dibangun kembali. ATTACH_REBUILD_LOG secara otomatis membuat file log 1-MB baru. File ini ditempatkan di lokasi file log default. Untuk informasi tentang lokasi ini, lihat Menampilkan atau Mengubah Lokasi Default untuk Data dan File Log di SSMS.
Catatan
Jika file log tersedia, Mesin Database menggunakan file tersebut alih-alih membangun kembali file log.
FOR ATTACH_REBUILD_LOG memerlukan kondisi berikut:
- Pematian database yang bersih.
- Semua file data (MDF dan NDF) harus tersedia.
Penting
Operasi ini memutus rantai cadangan log. Kami menyarankan agar pencadangan database lengkap dilakukan setelah operasi selesai. Untuk informasi selengkapnya, lihat BACKUP.
Biasanya, FOR ATTACH_REBUILD_LOG digunakan saat Anda menyalin database baca/tulis dengan log besar ke server lain di mana salinan akan digunakan sebagian besar, atau hanya, untuk operasi baca, dan oleh karena itu memerlukan lebih sedikit ruang log daripada database asli.
FOR ATTACH_REBUILD_LOG tidak dapat ditentukan pada rekam jepret database.
Untuk informasi selengkapnya tentang melampirkan dan mencopot database, lihat Melepas dan Melampirkan Database.
<Filespec>
Mengontrol properti file.
LOGICAL_FILE_NAME NAMA
Menentukan nama logis untuk file. NAME diperlukan saat FILENAME ditentukan, kecuali saat menentukan salah satu klausa FOR ATTACH. Grup file FILESTREAM tidak dapat diberi nama PRIMARY.
logical_file_name
Adalah nama logis yang digunakan di SQL Server saat mereferensikan file. Logical_file_name harus unik dalam database dan mematuhi aturan untuk pengidentifikasi. Nama dapat berupa karakter atau konstanta Unicode, atau pengidentifikasi reguler atau dibatasi.
FILENAME { 'os_file_name' | 'filestream_path' }
Menentukan nama file sistem operasi (fisik).
' os_file_name '
Apakah jalur dan nama file digunakan oleh sistem operasi saat Anda membuat file. File harus berada di salah satu perangkat berikut: server lokal tempat SQL Server diinstal, Jaringan Area Penyimpanan [SAN], atau jaringan berbasis iSCSI. Jalur yang ditentukan harus ada sebelum menjalankan pernyataan CREATE DATABASE. Untuk informasi selengkapnya, lihat File Database dan Grup File nanti di artikel ini.
Parameter SIZE, MAXSIZE, dan FILEGROWTH dapat diatur ketika jalur UNC ditentukan untuk file tersebut.
Jika file berada di partisi mentah, os_file_name harus menentukan hanya huruf drive dari partisi mentah yang ada. Hanya satu file data yang dapat dibuat pada setiap partisi mentah.
Catatan
Partisi mentah tidak didukung di SQL Server 2014 dan versi yang lebih baru.
File data tidak boleh diletakkan pada sistem file terkompresi kecuali file adalah file sekunder baca-saja, atau database bersifat baca-saja. File log tidak boleh diletakkan pada sistem file terkompresi.
' filestream_path '
Untuk grup file FILESTREAM, FILENAME mengacu pada jalur tempat data FILESTREAM akan disimpan. Jalur hingga folder terakhir harus ada, dan folder terakhir tidak boleh ada. Misalnya, jika Anda menentukan jalur C:\MyFiles\MyFilestreamData
, C:\MyFiles
harus ada sebelum Anda menjalankan ALTER DATABASE, tetapi MyFilestreamData
folder tidak boleh ada.
Grup file dan file (<filespec>
) harus dibuat dalam pernyataan yang sama.
Properti SIZE dan FILEGROWTH tidak berlaku untuk grup file FILESTREAM.
Ukuran UKURAN
Menentukan ukuran file.
UKURAN tidak dapat ditentukan ketika os_file_name ditentukan sebagai jalur UNC. UKURAN tidak berlaku untuk grup file FILESTREAM.
ukuran
Adalah ukuran awal file.
Ketika ukuran tidak disediakan untuk file utama, Mesin Database menggunakan ukuran file utama dalam model
database. Ukuran model
default database adalah 8 MB (dimulai dengan SQL Server 2016 (13.x)) atau 1 MB (untuk versi sebelumnya). Ketika file data sekunder atau file log ditentukan, tetapi ukuran tidak ditentukan untuk file, Mesin Database membuat file 8 MB (dimulai dengan SQL Server 2016 (13.x)) atau 1 MB (untuk versi yang lebih lama). Ukuran yang ditentukan untuk file utama harus setidaknya sebesar file model
utama database.
Akhiran kilobyte (KB), megabyte (MB), gigabyte (GB), atau terabyte (TB) dapat digunakan. Defaultnya adalah MB. Tentukan bilangan bula. Jangan sertakan desimal. Ukuran adalah nilai bilangan bulat. Untuk nilai yang lebih besar dari 2147483647, gunakan unit yang lebih besar.
MAX_SIZE MAXSIZE
Menentukan ukuran maksimum yang dapat ditumbuhkan file. MAXSIZE tidak dapat ditentukan ketika os_file_name ditentukan sebagai jalur UNC.
max_size
Adalah ukuran file maksimum. Akhiran KB, MB, GB, dan TB dapat digunakan. Defaultnya adalah MB. Tentukan bilangan bula. Jangan sertakan desimal. Jika max_size tidak ditentukan, file akan bertambah hingga disk penuh. Max_size adalah nilai bilangan bulat. Untuk nilai yang lebih besar dari 2147483647, gunakan unit yang lebih besar.
UNLIMITED
Menentukan bahwa file bertambah hingga disk penuh. Di SQL Server, file log yang ditentukan dengan pertumbuhan tak terbatas memiliki ukuran maksimum 2 TB, dan file data memiliki ukuran maksimum 16 TB.
Catatan
Tidak ada ukuran maksimum ketika opsi ini ditentukan untuk kontainer FILESTREAM. Ini terus bertambah sampai disk penuh.
GROWTH_INCREMENT FILEGROWTH
Menentukan kenaikan pertumbuhan otomatis file. Pengaturan FILEGROWTH untuk file tidak boleh melebihi pengaturan MAXSIZE. FILEGROWTH tidak dapat ditentukan ketika os_file_name ditentukan sebagai jalur UNC. FILEGROWTH tidak berlaku untuk grup file FILESTREAM.
growth_increment
Adalah jumlah ruang yang ditambahkan ke file setiap kali ruang baru diperlukan.
Nilai dapat ditentukan dalam MB, KB, GB, TB, atau persen (%). Jika angka ditentukan tanpa akhiran MB, KB, atau % , defaultnya adalah MB. Ketika % ditentukan, ukuran kenaikan pertumbuhan adalah persentase yang ditentukan dari ukuran file pada saat kenaikan terjadi. Ukuran yang ditentukan dibulatkan ke 64 KB terdekat, dan nilai minimumnya adalah 64 KB.
Nilai 0 menunjukkan bahwa pertumbuhan otomatis tidak aktif dan tidak ada ruang tambahan yang diizinkan.
Jika FILEGROWTH tidak ditentukan, nilai defaultnya adalah:
Versi | Nilai default |
---|---|
Memulai SQL Server 2016 (13.x) | Data 64 MB. File log 64 MB. |
Memulai SQL Server 2005 (9.x) | Data 1 MB. File log 10%. |
Sebelum SQL Server 2005 (9.x) | Data 10%. File log 10%. |
<grup file>
Mengontrol properti grup file. Grup file tidak dapat ditentukan pada rekam jepret database.
filegroup_name FILEGROUP
Adalah nama logis dari grup file.
filegroup_name
filegroup_name harus unik dalam database dan tidak boleh nama PRIMER dan PRIMARY_LOG yang disediakan sistem. Nama dapat berupa karakter atau konstanta Unicode, atau pengidentifikasi reguler atau dibatasi. Nama harus mematuhi aturan untuk pengidentifikasi.
BERISI ALIRAN FILE
Menentukan bahwa grup file menyimpan objek besar biner (BLOB) FILESTREAM dalam sistem file.
DEFAULT
Menentukan grup file bernama adalah grup file default dalam database.
BERISI MEMORY_OPTIMIZED_DATA
Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru
Menentukan bahwa grup file menyimpan memory_optimized data dalam sistem file. Untuk informasi selengkapnya, lihat Gambaran Umum Pengoptimalan Dalam Memori dan Skenario Penggunaan. Hanya satu grup file MEMORY_OPTIMIZED_DATA yang diizinkan per database. Untuk sampel kode yang membuat grup file untuk menyimpan data yang dioptimalkan memori, lihat Membuat Tabel yang Dioptimalkan Memori dan Prosedur Tersimpan yang Dikompilasi Secara Asli.
database_snapshot_name
Adalah nama rekam jepret database baru. Nama rekam jepret database harus unik dalam instans SQL Server dan mematuhi aturan untuk pengidentifikasi. database_snapshot_name bisa maksimal 128 karakter.
ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]
Untuk membuat rekam jepret database, menentukan daftar file dalam database sumber. Agar rekam jepret berfungsi, semua file data harus ditentukan satu per satu. Namun, file log tidak diizinkan untuk rekam jepret database. Grup file FILESTREAM tidak didukung oleh rekam jepret database. Jika file data FILESTREAM disertakan dalam klausul CREATE DATABASE ON, pernyataan akan gagal dan kesalahan akan muncul.
Untuk deskripsi NAME dan FILENAME dan nilainya, lihat deskripsi nilai filespec yang> setara<.
Catatan
Saat Anda membuat rekam jepret database, opsi filespec> lainnya <dan kata kunci PRIMER tidak diizinkan.
SEBAGAI REKAM JEPRET source_database_name
Menentukan bahwa database yang dibuat adalah rekam jepret database dari database sumber yang ditentukan oleh source_database_name. Rekam jepret dan database sumber harus berada pada instans yang sama.
Sebelum SQL Server 2019, database sumber untuk rekam jepret database tidak dapat berisi grup file MEMORY_OPTIMIZED_DATA. Dukungan untuk rekam jepret database dalam memori ditambahkan di SQL Server 2019.
Untuk informasi selengkapnya, lihat Rekam Jepret Database.
Keterangan
Database master harus dicadangkan setiap kali database pengguna dibuat, dimodifikasi, atau dihilangkan.
Pernyataan CREATE DATABASE
harus berjalan dalam mode autocommit (mode manajemen transaksi default) dan tidak diizinkan dalam transaksi eksplisit atau implisit.
Anda bisa menggunakan satu CREATE DATABASE
pernyataan untuk membuat database dan file yang menyimpan database. SQL Server mengimplementasikan pernyataan CREATE DATABASE dengan menggunakan langkah-langkah berikut:
- SQL Server menggunakan salinan database model untuk menginisialisasi database dan metadatanya.
- GUID broker layanan ditetapkan ke database.
- Mesin Database kemudian mengisi sisa database dengan halaman kosong, kecuali untuk halaman yang memiliki data internal yang merekam bagaimana ruang digunakan dalam database.
Maksimum 32.767 database dapat ditentukan pada instans SQL Server.
Setiap database memiliki pemilik yang dapat melakukan aktivitas khusus dalam database. Pemilik adalah pengguna yang membuat database. Pemilik database dapat diubah dengan menggunakan ALTER AUTHORIZATION.
Beberapa fitur database bergantung pada fitur atau kemampuan yang ada dalam sistem file untuk fungsionalitas penuh database. Beberapa contoh fitur yang bergantung pada set fitur sistem file meliputi:
- DBCC CHECKDB
- FileStream
- Pencadangan online menggunakan VSS dan rekam jepret file
- Pembuatan rekam jepret database
- Grup file Data yang Dioptimalkan Memori
File Database dan Grup File
Setiap database memiliki setidaknya dua file, file utama dan file log transaksi, dan setidaknya satu grup file. Maksimal 32.767 file dan 32.767 grup file dapat ditentukan untuk setiap database.
Saat Anda membuat database, buat file data sebesar mungkin berdasarkan jumlah maksimum data yang Anda harapkan dalam database.
Kami menyarankan agar Anda menggunakan Jaringan Area Penyimpanan (SAN), jaringan berbasis iSCSI, atau disk yang terpasang secara lokal untuk penyimpanan file database SQL Server Anda, karena konfigurasi ini mengoptimalkan performa dan keandalan SQL Server.
Snapshot database
Anda dapat menggunakan CREATE DATABASE
pernyataan untuk membuat tampilan statis baca-saja, rekam jepret database database sumber. Rekam jepret database secara transaksional konsisten dengan database sumber seperti yang ada pada saat rekam jepret dibuat. Database sumber dapat memiliki beberapa rekam jepret.
Catatan
Saat Anda membuat rekam jepret database, CREATE DATABASE
pernyataan tidak dapat mereferensikan file log, file offline, memulihkan file, dan mencabut file.
Jika membuat rekam jepret database gagal, rekam jepret menjadi tersangka dan harus dihapus. Untuk informasi selengkapnya, lihat DROP DATABASE.
Setiap rekam jepret bertahan hingga dihapus dengan menggunakan DROP DATABASE
.
Untuk informasi selengkapnya, lihat Rekam Jepret Database dan Membuat rekam jepret database (Transact-SQL).
Opsi database
Beberapa opsi database secara otomatis diatur setiap kali Anda membuat database. Untuk daftar opsi ini, lihat Mengubah Opsi SET DATABASE.
Database model dan membuat database baru
Semua objek yang ditentukan pengguna dalam database model disalin ke semua database yang baru dibuat. Anda dapat menambahkan objek apa pun, seperti tabel, tampilan, prosedur tersimpan, jenis data, dan sebagainya, ke database yang model
akan disertakan dalam semua database yang baru dibuat.
CREATE DATABASE <database_name>
Ketika pernyataan ditentukan tanpa parameter ukuran tambahan, file data utama dibuat berukuran sama dengan file utama dalam model
database.
Kecuali FOR ATTACH
ditentukan, setiap database baru mewarisi pengaturan opsi database dari model
database. Misalnya, penyusutan otomatis opsi database diatur ke true di model
dan di database baru apa pun yang Anda buat. Jika Anda mengubah opsi dalam model
database, pengaturan opsi baru ini digunakan dalam database baru yang Anda buat. Mengubah operasi dalam model
database tidak memengaruhi database yang ada. Jika FOR ATTACH ditentukan pada pernyataan CREATE DATABASE, database baru mewarisi pengaturan opsi database dari database asli.
Menampilkan informasi database
Anda dapat menggunakan tampilan katalog, fungsi sistem, dan prosedur tersimpan sistem untuk mengembalikan informasi tentang database, file, dan grup file. Untuk informasi selengkapnya, lihat Tampilan Sistem.
Izin
CREATE DATABASE
Memerlukan izin , CREATE ANY DATABASE
, atau ALTER ANY DATABASE
.
Untuk mempertahankan kontrol atas penggunaan disk pada instans SQL Server, izin untuk membuat database biasanya terbatas pada beberapa login.
Contoh berikut menyediakan izin untuk membuat database ke pengguna Fay
database .
USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO
Izin pada Data dan File Log
Di SQL Server, izin tertentu diatur pada data dan file log dari setiap database. Izin berikut diatur setiap kali operasi berikut diterapkan ke database:
- Terlampir
- Didukung
- Dibuat
- Terlepas
- Dimodifikasi untuk menambahkan file baru
- Dipulihkan
Izin mencegah file dirusak secara tidak sengaja jika mereka berada di direktori yang memiliki izin terbuka.
Catatan
Edisi Microsoft SQL Server 2005 Express tidak mengatur izin file data dan log.
Contoh
J. Membuat database tanpa menentukan file
Contoh berikut membuat database mytest
dan membuat file log utama dan transaksi yang sesuai. Karena pernyataan tidak <memiliki item filespec> , file database utama adalah ukuran model
file utama database. Log transaksi diatur ke nilai yang lebih besar: 512 KB atau 25% ukuran file data utama. Karena MAXSIZE tidak ditentukan, file dapat bertambah untuk mengisi semua ruang disk yang tersedia. Contoh ini juga menunjukkan cara menghilangkan database bernama mytest
jika ada, sebelum membuat mytest
database.
USE master;
GO
IF DB_ID (N'mytest') IS NOT NULL
DROP DATABASE mytest;
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. Membuat database yang menentukan data dan file log transaksi
Contoh berikut membuat database Sales
. Karena kata kunci PRIMARY tidak digunakan, file pertama (Sales_dat
) menjadi file utama. Karena MB atau KB tidak ditentukan dalam parameter SIZE untuk Sales_dat
file, MB dan dialokasikan dalam megabyte. File Sales_log
dialokasikan dalam megabyte karena akhiran MB
secara eksplisit dinyatakan SIZE
dalam parameter.
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
C. Membuat database dengan menentukan beberapa data dan file log transaksi
Contoh berikut membuat database Archive
yang memiliki tiga 100-MB
file data dan dua 100-MB
file log transaksi. File utama adalah file pertama dalam daftar dan secara eksplisit ditentukan dengan PRIMARY
kata kunci. File log transaksi ditentukan mengikuti LOG ON
kata kunci. Perhatikan ekstensi yang digunakan untuk file dalam FILENAME
opsi: .mdf
digunakan untuk file data utama, .ndf
digunakan untuk file data sekunder, dan .ldf
digunakan untuk file log transaksi. Contoh ini menempatkan database pada D:
drive alih-alih dengan master
database.
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. Membuat database yang memiliki grup file
Contoh berikut membuat database Sales
yang memiliki grup file berikut:
- Grup file utama dengan file
Spri1_dat
danSpri2_dat
. Kenaikan FILEGROWTH untuk file-file ini ditentukan sebagai15%
. - Grup file bernama
SalesGroup1
dengan fileSGrp1Fi1
danSGrp1Fi2
. - Grup file bernama
SalesGroup2
dengan fileSGrp2Fi1
danSGrp2Fi2
.
Contoh ini menempatkan data dan file log pada disk yang berbeda untuk meningkatkan performa.
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. Melampirkan database
Contoh berikut mencopot database Archive
yang dibuat dalam contoh D, lalu melampirkannya dengan menggunakan FOR ATTACH
klausa. Archive
didefinisikan untuk memiliki beberapa file data dan log. Namun, karena lokasi file tidak berubah sejak dibuat, hanya file utama yang harus ditentukan dalam FOR ATTACH
klausa. Dimulai dengan SQL Server 2005 (9.x), file teks lengkap apa pun yang merupakan bagian dari database yang sedang dilampirkan akan dilampirkan dengan database.
USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
ON (FILENAME = 'D:\SalesData\archdat1.mdf')
FOR ATTACH ;
GO
F. Membuat rekam jepret database
Contoh berikut membuat rekam jepret sales_snapshot0600
database . Karena rekam jepret database bersifat baca-saja, file log tidak dapat ditentukan. Sesuai dengan sintaks, setiap file dalam database sumber ditentukan, dan grup file tidak ditentukan.
Database sumber untuk contoh ini adalah database yang Sales
dibuat dalam contoh 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. Membuat database dan menentukan nama dan opsi kolamen
Contoh berikut membuat database MyOptionsTest
. Nama kolase ditentukan dan TRUSTYWORTHY
opsi dan DB_CHAINING
diatur ke 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. Melampirkan katalog teks lengkap yang telah dipindahkan
Contoh berikut melampirkan katalog AdvWksFtCat
teks lengkap bersama dengan AdventureWorks2022
data dan file log. Dalam contoh ini, katalog teks lengkap dipindahkan dari lokasi defaultnya ke lokasi c:\myFTCatalogs
baru . File data dan log tetap berada di lokasi defaultnya.
USE master;
GO
--Detach the AdventureWorks2022 database
sp_detach_db AdventureWorks2022;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2022 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2022 ON
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'),
(FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf'),
(FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO
I. Membuat database yang menentukan grup file baris dan dua grup file FILESTREAM
Contoh berikut membuat FileStreamDB
database. Database dibuat dengan satu grup file baris dan dua grup file FILESTREAM. Setiap grup file berisi satu file:
FileStreamDB_data
berisi data baris. Ini berisi satu file,FileStreamDB_data.mdf
dengan jalur default.FileStreamPhotos
berisi data FILESTREAM. Ini berisi dua kontainer data FILESTREAM,FSPhotos
, terletak diC:\MyFSfolder\Photos
danFSPhotos2
, terletak diD:\MyFSfolder\Photos
. Ini ditandai sebagai grup file FILESTREAM default.FileStreamResumes
berisi data FILESTREAM. Ini berisi satu kontainer data FILESTREAM,FSResumes
, yang terletak diC:\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''
-- SIZE and 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
j. Membuat database yang memiliki grup file FILESTREAM dengan beberapa file
Contoh berikut membuat BlobStore1
database. Database dibuat dengan satu grup file baris dan satu grup file FILESTREAM, FS
. Grup file FILESTREAM berisi dua file, FS1
dan FS2
. Kemudian database diubah dengan menambahkan file ketiga, FS3
, ke grup file FILESTREAM.
USE master;
GO
CREATE DATABASE [BlobStore1]
CONTAINMENT = NONE
ON PRIMARY
(
NAME = N'BlobStore1',
FILENAME = N'C:\BlobStore\BlobStore1.mdf',
SIZE = 100MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(
NAME = N'FS1',
FILENAME = N'C:\BlobStore\FS1',
MAXSIZE = UNLIMITED
),
(
NAME = N'FS2',
FILENAME = N'C:\BlobStore\FS2',
MAXSIZE = 100MB
)
LOG ON
(
NAME = N'BlobStore1_log',
FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
SIZE = 100MB,
MAXSIZE = 1GB,
FILEGROWTH = 1MB
);
GO
ALTER DATABASE [BlobStore1]
ADD FILE
(
NAME = N'FS3',
FILENAME = N'C:\BlobStore\FS3',
MAXSIZE = 100MB
)
TO FILEGROUP [FS];
GO
Konten terkait
* SQL Database *
SQL Database
Gambaran Umum
Di Azure SQL Database, pernyataan ini dapat digunakan dengan server Azure SQL untuk membuat database tunggal atau database dalam kumpulan elastis. Dengan pernyataan ini, Anda menentukan nama database, kolase, ukuran maksimum, edisi, tujuan layanan, dan, jika berlaku, kumpulan elastis untuk database baru. Ini juga dapat digunakan untuk membuat database di kumpulan elastis. Selain itu, ini dapat digunakan untuk membuat salinan database di server SQL Database lain.
Sintaks
Membuat database
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
CREATE DATABASE database_name [ COLLATE collation_name ]
{
(<edition_options> [, ...n])
}
[ WITH <with_options> [,..n]]
[;]
<with_options> ::=
{
CATALOG_COLLATION = { DATABASE_DEFAULT | SQL_Latin1_General_CP1_CI_AS }
| BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' }
| LEDGER = {ON | OFF }
}
<edition_options> ::=
{
MAXSIZE = { 100 MB | 500 MB | 1 ... 1024 ... 4096 GB }
| ( EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale' }
| SERVICE_OBJECTIVE =
{ 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
| 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
| 'BC_DC_n'
| 'BC_Gen5_n'
| 'BC_M_n'
| 'GP_DC_n'
| 'GP_Fsv2_n'
| 'GP_Gen5_n'
| 'GP_S_Gen5_n'
| 'HS_DC_n'
| 'HS_Gen5_n'
| 'HS_MOPRMS_n'
| 'HS_PRMS_n'
| { ELASTIC_POOL(name = <elastic_pool_name>) } })
}
Menyalin database
CREATE DATABASE database_name
AS COPY OF [source_server_name.] source_database_name
[ ( SERVICE_OBJECTIVE =
{ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
| 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
| 'GP_Gen5_n'
| 'GP_Fsv2_n'
| 'GP_S_Gen5_n'
| 'BC_Gen5_n'
| 'BC_M_n'
| 'HS_Gen5_n'
| 'HS_PRMS_n'
| 'HS_MOPRMS_n'
| { ELASTIC_POOL(name = <elastic_pool_name>) } })
]
[ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' } ) ]
[;]
Argumen
database_name
Nama database baru. Nama ini harus unik di SQL Server dan mematuhi aturan SQL Server untuk pengidentifikasi. Untuk informasi selengkapnya, lihat Pengidentifikasi.
Collation_name
Menentukan kolatasi default untuk data database. Tentukan CATALOG_COLLATION
untuk metadata sistem, seperti pengidentifikasi objek.
Nama kolase dapat berupa nama kolase Windows atau nama kolase SQL. Jika tidak ditentukan, database diberi kolase default, yang SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, COLLATE (Transact-SQL).
CATALOG_COLLATION
Menentukan kolatasi default untuk katalog metadata. Argumen CATALOG_COLLATION
hanya tersedia selama pembuatan database dan tidak dapat diubah setelah pembuatan.
Secara default, katalog metadata untuk nama objek sistem disatukan ke kolate SQL_Latin1_General_CP1_CI_AS . Ini adalah pengaturan default pada Azure SQL Database jika CATALOG_COLLATION tidak ditentukan.
DATABASE_DEFAULT menentukan bahwa katalog metadata yang digunakan untuk tampilan sistem dan tabel sistem disatukan agar sesuai dengan kolase database. Jika Anda menginginkan pengidentifikasi objek dalam metadata sistem mengikuti kolase yang sama dengan data, Anda harus membuat database WITH CATALOG_COLLATION = DATABASE_DEFAULT
.
Anda mungkin menginginkan kolatasi yang berbeda untuk pengidentifikasi data dan objek. Contoh berikut membuat database dengan kolate peka huruf besar/kecil untuk data baris, tetapi akan menggunakan kolate default SQL_Latin1_General_CP1_CI_AS tidak peka huruf besar/kecil untuk pengidentifikasi objek.
CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
Jika Anda ingin metadata data dan sistem menggunakan kolate yang sama, tentukan
WITH CATALOG_COLLATION = DATABASE_DEFAULT
. Contoh berikut membuat database dengan kolase peka huruf besar/kecil, yang akan digunakan untuk pengidentifikasi objek.CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS WITH CATALOG_COLLATION = DATABASE_DEFAULT
BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZONE' | 'GEO'}
Menentukan bagaimana pemulihan point-in-time dan cadangan retensi jangka panjang untuk database direplikasi. Pemulihan geografis atau kemampuan untuk pulih dari pemadaman regional hanya tersedia ketika database dibuat dengan GEO
redundansi penyimpanan cadangan. Kecuali ditentukan secara eksplisit, database yang dibuat dengan T-SQL menggunakan penyimpanan cadangan geo-redundan.
Untuk menerapkan residensi data saat Anda membuat database dengan menggunakan T-SQL, gunakan LOCAL
atau ZONE
sebagai input ke parameter BACKUP_STORAGE_REDUNDANCY.
Saat membuat database sebagai salinan database lain dengan AS COPY OF
, menentukan opsi didukung dan harus dibungkus dalam tanda kurung. Contohnya,WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');
.
LEDGER = {ON | NONAKTIF }
Ketika diatur ke ON
, ia membuat database ledger, di mana integritas semua data pengguna dilindungi. Hanya tabel ledger yang dapat dibuat dalam database ledger. Default adalah OFF
. Nilai LEDGER
opsi tidak dapat diubah setelah database dibuat. Untuk informasi selengkapnya, lihat Mengonfigurasi database ledger.
MAXSIZE
Menentukan ukuran maksimum database. MAXSIZE harus valid untuk EDISI (tingkat layanan) yang ditentukan.
Berikut ini adalah nilai MAXSIZE dan default (D) yang didukung untuk tingkat layanan.
Catatan
Argumen MAXSIZE tidak berlaku untuk database tunggal di tingkat layanan Hyperscale. Database tingkat Hyperscale tunggal tumbuh sesuai kebutuhan, hingga 128 TB. Layanan SQL Database menambahkan penyimpanan secara otomatis - Anda tidak perlu mengatur ukuran maksimum.
Model DTU untuk database tunggal dan terkumpul di server SQL Database
MAXSIZE | Dasar | S0-S2 | S3-S12 | P1-P6 | P11-P15 |
---|---|---|---|---|---|
100 MB | √ | √ | √ | √ | √ |
500 MB | √ | √ | √ | √ | √ |
1 GB | √ | √ | √ | √ | √ |
2 GB | √ (D) | √ | √ | √ | √ |
5 GB | T/A | √ | √ | √ | √ |
10 GB | T/A | √ | √ | √ | √ |
20 GB | T/A | √ | √ | √ | √ |
30 GB | T/A | √ | √ | √ | √ |
40 GB | T/A | √ | √ | √ | √ |
50 GB | T/A | √ | √ | √ | √ |
100 GB | T/A | √ | √ | √ | √ |
150 GB | T/A | √ | √ | √ | √ |
200 GB | T/A | √ | √ | √ | √ |
250 GB | T/A | √ (D) | √ (D) | √ | √ |
300 GB | T/A | T/A | √ | √ | √ |
400 GB | T/A | T/A | √ | √ | √ |
500 GB | T/A | T/A | √ | √ (D) | √ |
750 GB | T/A | T/A | √ | √ | √ |
1.024 GB | T/A | T/A | √ | √ | √ (D) |
Dari 1.024 GB hingga 4.096 GB dengan kenaikan 256 GB* | T/A | T/A | T/A | T/A | √ |
* P11 dan P15 memungkinkan MAXSIZE hingga 4 TB dengan 1.024 GB menjadi ukuran default. P11 dan P15 dapat menggunakan penyimpanan yang disertakan hingga 4 TB tanpa biaya tambahan. Di tingkat Premium, MAXSIZE yang lebih besar dari 1 TB saat ini tersedia di wilayah berikut: US Timur2, US Barat, US Gov Virginia, Eropa Barat, Jerman Tengah, Asia Tenggara, Jepang Timur, Australia Timur, Kanada Tengah, dan Kanada Timur. Untuk informasi selengkapnya mengenai batasan sumber daya untuk model DTU, lihat Batas sumber daya DTU.
Nilai MAXSIZE untuk model DTU, jika ditentukan, harus berupa nilai yang valid yang ditunjukkan dalam tabel sebelumnya untuk tingkat layanan yang ditentukan.
Untuk batas seperti ukuran dan tempdb
ukuran data maksimum dalam model pembelian vCore, lihat artikel untuk batas sumber daya untuk database tunggal atau batas sumber daya untuk kumpulan elastis.
Jika tidak ada MAXSIZE
nilai yang diatur saat menggunakan model vCore, defaultnya adalah 32 GB. Untuk informasi selengkapnya tentang batasan sumber daya untuk model vCore, lihat batas sumber daya vCore.
EDISI
Menentukan tingkat layanan database.
Database tunggal dan terkumpul. Nilai yang tersedia adalah: 'Dasar', 'Standar', 'Premium', 'GeneralPurpose', 'BusinessCritical', dan 'Hyperscale'.
Aturan berikut berlaku untuk argumen MAXSIZE dan EDITION:
- Jika EDISI ditentukan tetapi MAXSIZE tidak ditentukan, nilai default untuk edisi digunakan. Misalnya, jika EDISI diatur ke Standar, dan MAXSIZE tidak ditentukan, maka MAXSIZE secara otomatis diatur ke 250 MB.
- Jika MAXSIZE atau EDITION tidak ditentukan, EDISI diatur ke
GeneralPurpose
, dan MAXSIZE diatur ke 32 GB.
SERVICE_OBJECTIVE
Menentukan ukuran komputasi dan tujuan layanan.
- Untuk model pembelian DTU:
S0
, , ,S1
S2
,S4
S3
, ,S6
,S9
S7
,S12
,P1
, ,P2
,P4
, ,P6
, , ,P11
P15
- Untuk model pembelian vCore terbaru, pilih tingkat dan berikan jumlah vCore dari daftar nilai yang telah ditetapkan, di mana jumlah vCore adalah
n
. Lihat batas sumber daya untuk database tunggal atau batas sumber daya untuk kumpulan elastis.- Contohnya:
GP_Gen5_8
untuk komputasi Seri Standar Tujuan Umum (Gen5), 8 vCore.GP_S_Gen5_8
untuk komputasi Seri Standar Tanpa Server Tujuan Umum (Gen5), 8 vCore.HS_Gen5_8
untuk Hyperscale - komputasi yang disediakan - seri standar (Gen5), 8 vCore.
Untuk deskripsi tujuan layanan dan informasi selengkapnya tentang ukuran, edisi, dan kombinasi tujuan layanan, lihat Tingkat Layanan Azure SQL Database. Jika SERVICE_OBJECTIVE yang ditentukan tidak didukung oleh EDISI, Anda menerima kesalahan. Untuk mengubah nilai SERVICE_OBJECTIVE dari satu tingkat ke tingkat lainnya (misalnya dari S1 ke P1), Anda juga harus mengubah nilai EDITION. Dukungan untuk tujuan layanan PRS telah dihapus.
ELASTIC_POOL (nama = <elastic_pool_name>)
Berlaku untuk: Database tunggal dan terkumpul saja. Tidak berlaku untuk database di tingkat layanan Hyperscale. Untuk membuat database baru di kumpulan database elastis, atur SERVICE_OBJECTIVE database ke ELASTIC_POOL dan berikan nama kumpulan. Untuk informasi selengkapnya, lihat Membuat dan mengelola kumpulan elastis SQL Database.
SEBAGAI SALINAN [source_server_name.]source_database_name
Berlaku untuk: Database tunggal dan terkumpul saja.
Gunakan AS COPY OF
untuk menyalin database ke server SQL Database yang sama atau berbeda.
Saat membuat database sebagai salinan database lain dengan AS COPY OF
, menentukan opsi didukung dan harus dibungkus dalam tanda kurung. Contohnya,WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');
.
source_server_name Nama server SQL Database tempat database sumber berada. Parameter ini bersifat opsional ketika database sumber dan database tujuan berada di server SQL Database yang sama.
Catatan
Argumen AS COPY OF
tidak mendukung nama domain unik yang sepenuhnya memenuhi syarat. Dengan kata lain, jika nama domain server Anda yang sepenuhnya memenuhi syarat adalah serverName.database.windows.net
, gunakan hanya serverName
selama salinan database.
source_database_name
Nama database yang akan disalin.
Keterangan
Database di Azure SQL Database memiliki beberapa pengaturan default yang diatur saat database dibuat. Untuk informasi selengkapnya tentang pengaturan default ini, lihat daftar nilai di DATABASEPROPERTYEX.
MAXSIZE
menyediakan kemampuan untuk membatasi ukuran database. Jika ukuran database mencapai , MAXSIZE
Anda menerima kode kesalahan 40544. Ketika ini terjadi, Anda tidak dapat menyisipkan atau memperbarui data, atau membuat objek baru (seperti tabel, prosedur tersimpan, tampilan, dan fungsi). Namun, Anda masih dapat membaca dan menghapus data, memotong tabel, menghilangkan tabel dan indeks, dan membangun kembali indeks. Anda kemudian dapat memperbarui MAXSIZE
ke nilai yang lebih besar dari ukuran database Anda saat ini atau menghapus beberapa data untuk membebaskan ruang penyimpanan. Mungkin ada penundaan selama lima belas menit sebelum Anda dapat menyisipkan data baru.
Untuk mengubah ukuran, edisi, atau nilai tujuan layanan nanti, gunakan ALTER DATABASE (Azure SQL Database).
Salinan Database
Berlaku untuk: Database tunggal dan terkumpul saja.
Menyalin database menggunakan CREATE DATABASE
pernyataan adalah operasi asinkron. Oleh karena itu, koneksi ke server SQL Database tidak diperlukan untuk durasi penuh proses penyalinan. Pernyataan CREATE DATABASE
mengembalikan kontrol kepada pengguna setelah entri masuk sys.databases
dibuat tetapi sebelum operasi penyalinan database selesai. Dengan kata lain, CREATE DATABASE
pernyataan berhasil ditampilkan ketika salinan database masih berlangsung.
- Memantau proses penyalinan pada server SQL Database: Mengkueri
percentage_complete
kolom ataureplication_state_desc
di dm_database_copies ataustate
kolom dalam tampilan sys.databases . Tampilan sys.dm_operation_status dapat digunakan serta mengembalikan status operasi database termasuk salinan database.
Pada saat proses penyalinan berhasil diselesaikan, database tujuan secara transaksional konsisten dengan database sumber.
Sintaksis dan aturan semantik berikut berlaku untuk penggunaan argumen Anda AS COPY OF
:
- Nama server sumber dan nama server untuk target penyalinan mungkin sama atau berbeda. Ketika keduanya sama, parameter ini bersifat opsional dan konteks server sesi saat ini digunakan secara default.
- Nama database sumber dan tujuan harus ditentukan, unik, dan mematuhi aturan SQL Server untuk pengidentifikasi. Untuk informasi selengkapnya, lihat Pengidentifikasi.
- Pernyataan
CREATE DATABASE
harus dijalankan dalam konteksmaster
database server SQL Database tempat database baru akan dibuat. - Setelah penyalinan selesai, database tujuan harus dikelola sebagai database independen. Anda dapat menjalankan
ALTER DATABASE
pernyataan danDROP DATABASE
terhadap database baru secara independen dari database sumber. Anda juga bisa menyalin database baru ke database baru lainnya. - Database sumber mungkin terus diakses saat salinan database sedang berlangsung.
Untuk informasi selengkapnya, lihat Membuat salinan database Azure SQL menggunakan Transact-SQL.
Penting
Secara default, salinan database dibuat dengan redundansi penyimpanan cadangan yang sama dengan database sumber.
Izin
Untuk membuat database, login harus menjadi salah satu prinsipal berikut:
- Login utama tingkat server
- Administrator Microsoft Entra untuk server logis di Azure
- Login yang merupakan anggota
dbmanager
peran database
Persyaratan tambahan untuk menggunakan CREATE DATABASE ... AS COPY OF
sintaksis: Login yang menjalankan pernyataan di server lokal juga harus setidaknya db_owner
pada server sumber. Jika login didasarkan pada autentikasi SQL Server, login yang menjalankan pernyataan di server lokal harus memiliki login yang cocok di server SQL Database sumber, dengan nama dan kata sandi yang identik.
Contoh
Contoh sederhana
Contoh sederhana untuk membuat database.
CREATE DATABASE TestDB1;
Contoh sederhana dengan edisi
Contoh sederhana untuk membuat database tujuan umum.
CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );
Contoh dengan opsi tambahan
Contoh menggunakan beberapa opsi.
CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' ) ;
Membuat salinan database
Contoh membuat salinan database.
Berlaku untuk: Database tunggal dan terkumpul saja.
CREATE DATABASE escuela
AS COPY OF school;
Membuat database di kumpulan elastis
Membuat database baru di kumpulan bernama S3M100:
Berlaku untuk: Database tunggal dan terkumpul saja.
CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;
Membuat salinan database di server logis lain
Contoh berikut membuat salinan database bernama db_original
db_copy
dalam tujuan layanan Tujuan Umum untuk satu database. Hal ini berlaku terlepas dari apakah db_original
berada dalam kumpulan elastis atau ukuran komputasi (tujuan layanan) untuk satu database.
Berlaku untuk: Database tunggal dan terkumpul saja.
CREATE DATABASE db_copy
AS COPY OF ozabzw7545.db_original ( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' );
Contoh berikut membuat salinan database, bernama db_original
db_copy
dalam kumpulan elastis bernama ep1
. Hal ini berlaku terlepas dari apakah db_original
berada dalam kumpulan elastis atau ukuran komputasi (tujuan layanan) untuk satu database. Jika db_original
berada di kumpulan elastis dengan nama yang berbeda, maka db_copy
masih dibuat di ep1
.
Berlaku untuk: Database tunggal dan terkumpul saja.
CREATE DATABASE db_copy
AS COPY OF ozabzw7545.db_original
(SERVICE_OBJECTIVE = ELASTIC_POOL( name = ep1 ) ) ;
Membuat database dengan nilai kolaterasi katalog tertentu
Contoh berikut mengatur kolase katalog ke DATABASE_DEFAULT selama pembuatan database, yang mengatur kolase katalog agar sama dengan kolase database.
CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
WITH CATALOG_COLLATION = DATABASE_DEFAULT;
Membuat database menggunakan zona-redundansi untuk pencadangan
Contoh berikut mengatur redundansi zona untuk pencadangan database. Pencadangan pemulihan point-in-time dan cadangan retensi jangka panjang (jika dikonfigurasi) akan menggunakan redundansi penyimpanan cadangan yang sama.
CREATE DATABASE test_zone_redundancy
WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';
Membuat database ledger
CREATE DATABASE MyLedgerDB ( EDITION = 'GeneralPurpose' ) WITH LEDGER = ON;
Membuat sebagai salinan database saat mengubah opsi
Contoh berikut mengatur opsi yang berbeda untuk salinan baru database, termasuk tingkat layanan yang berbeda dan pengaturan redundansi penyimpanan cadangan. Secara default, salinan database dibuat dengan pengaturan yang sama dengan database sumber.
CREATE DATABASE copy_testdb
AS COPY OF [test_db]
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');
Konten terkait
* SQL Managed Instance *
Instans Terkelola Azure SQL
Gambaran Umum
Di Azure SQL Managed Instance, pernyataan ini digunakan untuk membuat database. Saat membuat database pada instans terkelola, Anda menentukan nama database dan kolatasi.
Sintaks
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [,..n]]
[;]
<with_options> ::=
{
LEDGER = { ON | OFF }
}
Penting
Untuk menambahkan file atau mengatur penahanan untuk database dalam instans terkelola, gunakan pernyataan ALTER DATABASE .
Argumen
database_name
Nama database baru. Nama ini harus unik di server SQL dan mematuhi aturan SQL Server untuk pengidentifikasi. Untuk informasi selengkapnya, lihat Pengidentifikasi.
Collation_name
Menentukan kolatasi default untuk database. Nama kolase dapat berupa nama kolase Windows atau nama kolase SQL. Jika tidak ditentukan, database diberi kolase default, yang SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, COLLATE (Transact-SQL).
LEDGER = {ON | NONAKTIF }
Ketika diatur ke ON
, ia membuat database ledger, di mana integritas semua data pengguna dilindungi. Hanya tabel ledger yang dapat dibuat dalam database ledger. Default adalah OFF
. Nilai LEDGER
opsi tidak dapat diubah setelah database dibuat. Untuk informasi selengkapnya, lihat Mengonfigurasi database ledger.
Keterangan
Database di Azure SQL Database memiliki beberapa pengaturan default yang diatur saat database dibuat. Untuk informasi selengkapnya tentang pengaturan default ini, lihat daftar nilai di DATABASEPROPERTYEX.
Penting
Pernyataan CREATE DATABASE
harus menjadi satu-satunya pernyataan dalam batch Transact-SQL.
Berikut ini adalah CREATE DATABASE
batasan:
File dan grup file tidak dapat didefinisikan.
WITH
opsi tidak didukung, kecuali untukWITH LEDGER
.Tip
Sebagai solusinya, gunakan ALTER DATABASE. setelah
CREATE DATABASE
mengatur opsi database dan untuk menambahkan file.
Izin
Untuk membuat database, login harus salah satu hal berikut ini:
- Login utama tingkat server
- Administrator Microsoft Entra untuk server logis di Azure
- Login yang merupakan anggota
dbcreator
peran database
Contoh
Contoh sederhana
Contoh sederhana untuk membuat database.
CREATE DATABASE TestDB1;
Membuat database ledger
CREATE DATABASE MyLedgerDB WITH LEDGER = ON;
Konten terkait
* Azure Synapse
Analytics*
Azure Synapse Analytics
Gambaran Umum
Di Azure Synapse, pernyataan ini dapat digunakan dengan server Azure SQL Database untuk membuat kumpulan SQL khusus. Dengan pernyataan ini, Anda menentukan nama database, kolase, ukuran maksimum, edisi, dan tujuan layanan.
- CREATE DATABASE didukung untuk kumpulan SQL khusus mandiri (sebelumnya SQL DW) menggunakan tingkat layanan Gen2.
- CREATE DATABASE tidak didukung untuk kumpulan SQL khusus di ruang kerja Azure Synapse Analytics. Sebagai gantinya, gunakan portal Azure.
- CREATE DATABASE didukung untuk kumpulan SQL tanpa server di Azure Synapse Analytics.
Sintaks
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
CREATE DATABASE database_name [ COLLATE collation_name ]
(
[ MAXSIZE = {
250 | 500 | 750 | 1024 | 5120 | 10240 | 20480 | 30720
| 40960 | 51200 | 61440 | 71680 | 81920 | 92160 | 102400
| 153600 | 204800 | 245760
} GB ,
]
EDITION = 'datawarehouse',
SERVICE_OBJECTIVE = {
'DW100c' | 'DW200c' | 'DW300c' | 'DW400c' | 'DW500c'
| 'DW1000c' | 'DW1500c' | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c'
| 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
}
)
[;]
Argumen
database_name
Nama database baru. Nama ini harus unik di server SQL, yang dapat menghosting database di database Azure SQL Database dan Azure Synapse Analytics, dan mematuhi aturan SQL Server untuk pengidentifikasi. Untuk informasi selengkapnya, lihat Pengidentifikasi.
collation_name
Menentukan kolatasi default untuk database. Nama kolase dapat berupa nama kolase Windows atau nama kolase SQL. Jika tidak ditentukan, database diberi kolase default, yang SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, lihat COLLATE (Transact-SQL).
MAXSIZE
Defaultnya adalah 245.760 GB (240 TB).
Berlaku untuk: Dioptimalkan untuk Compute Gen1
Ukuran maksimum yang diperbolehkan untuk database. Database tidak dapat tumbuh melebihi MAXSIZE.
Berlaku untuk: Dioptimalkan untuk Compute Gen2
Ukuran maksimum yang diizinkan untuk data rowstore dalam database. Data yang disimpan dalam tabel rowstore, deltastore indeks penyimpan kolom, atau indeks non-kluster pada indeks penyimpan kolom berkluster tidak dapat tumbuh melebihi MAXSIZE. Data yang dikompresi ke dalam format penyimpan kolom tidak memiliki batas ukuran dan tidak dibatasi oleh MAXSIZE.
EDISI
Menentukan tingkat layanan database. Untuk Azure Synapse Analytics gunakan datawarehouse
.
SERVICE_OBJECTIVE
Menentukan ukuran komputasi (tujuan layanan). Tingkat layanan untuk Gen2 diukur dalam unit gudang data komputasi (cDWU), misalnya DW2000c
. Tingkat layanan Gen1 diukur dalam DWU, misalnya DW2000
. Untuk informasi selengkapnya tentang tujuan layanan untuk Azure Synapse, lihat Unit Gudang Data (DWUs). Tujuan layanan Gen1 (tidak lagi tercantum) tidak lagi didukung, Anda dapat menerima kesalahan: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.
Keterangan
Gunakan DATABASEPROPERTYEX untuk melihat properti database.
Gunakan ALTER DATABASE - Azure Synapse Analytics untuk mengubah ukuran maksimum, atau nilai tujuan layanan nanti.
Azure Synapse diatur ke COMPATIBILITY_LEVEL 130 dan tidak dapat diubah. Untuk informasi selengkapnya, lihat Meningkatkan Performa Kueri dengan Tingkat Kompatibilitas 130 di Azure SQL Database.
Izin
Izin yang diperlukan:
- Login utama tingkat server, dibuat oleh proses provisi, atau
- Anggota
dbmanager
peran database.
Penanganan kesalahan
Jika ukuran database mencapai MAXSIZE, Anda akan menerima kode kesalahan 40544. Ketika ini terjadi, Anda tidak dapat menyisipkan dan memperbarui data, atau membuat objek baru (seperti tabel, prosedur tersimpan, tampilan, dan fungsi). Anda masih dapat membaca dan menghapus data, memotong tabel, menghilangkan tabel dan indeks, dan membangun kembali indeks. Anda kemudian dapat memperbarui MAXSIZE ke nilai yang lebih besar dari ukuran database Anda saat ini atau menghapus beberapa data untuk membebaskan ruang penyimpanan. Mungkin ada penundaan selama lima belas menit sebelum Anda dapat menyisipkan data baru.
Batasan
Anda harus tersambung ke master
database untuk membuat database baru.
Pernyataan CREATE DATABASE
harus menjadi satu-satunya pernyataan dalam batch Transact-SQL.
Anda tidak dapat mengubah kolatasi database setelah database dibuat.
Contoh: Azure Synapse Analytics
J. Contoh sederhana
Contoh sederhana untuk membuat kumpulan SQL khusus mandiri (sebelumnya SQL DW). Ini membuat database dengan ukuran maksimum terkecil (10.240 GB), kolase default (SQL_Latin1_General_CP1_CI_AS), dan tujuan layanan Gen2 terkecil (DW100c).
CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100c');
B. Membuat database gudang data dengan semua opsi
Contoh pembuatan kumpulan SQL khusus mandiri 10 terabyte (sebelumnya SQL DW).
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');
C. Contoh sederhana dalam kumpulan SQL tanpa server Synapse Analytics
Ini membuat database di kumpulan tanpa server, menentukan kolajeasi (Latin1_General_100_CI_AS_KS_WS).
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
Konten terkait
* Platform Analitik
Sistem (PDW) *
Sistem Platform Analisis
Gambaran Umum
Di Sistem Platform Analitik, pernyataan ini digunakan untuk membuat database baru pada appliance Sistem Platform Analitik. Gunakan pernyataan ini untuk membuat semua file yang terkait dengan database appliance dan untuk mengatur ukuran maksimum dan opsi pertumbuhan otomatis untuk tabel database dan log transaksi.
Sintaks
Untuk informasi selengkapnya tentang konvensi sintaks, lihat Konvensi sintaks transact-SQL.
CREATE DATABASE database_name
WITH (
[ AUTOGROW = ON | OFF , ]
REPLICATED_SIZE = replicated_size [ GB ] ,
DISTRIBUTED_SIZE = distributed_size [ GB ] ,
LOG_SIZE = log_size [ GB ] )
[;]
Argumen
database_name
Nama database baru. Untuk informasi selengkapnya tentang nama database yang diizinkan, lihat "Aturan Penamaan Objek" dan "Nama Database Cadangan" dalam dokumentasi produk Sistem Platform Analitik (PDW).
AUTOGROW = AKTIF | OFF
Menentukan apakah parameter replicated_size, distributed_size, dan log_size untuk database ini akan secara otomatis tumbuh sesuai kebutuhan di luar ukuran yang ditentukan. Nilai default adalah NONAKTIF.
Jika AUTOGROW AKTIF, replicated_size, distributed_size, dan log_size akan tumbuh sesuai kebutuhan (tidak dalam blok ukuran awal yang ditentukan) dengan setiap penyisipan data, pembaruan, atau tindakan lain yang memerlukan lebih banyak penyimpanan daripada yang telah dialokasikan.
Jika AUTOGROW NONAKTIF, ukurannya tidak akan tumbuh secara otomatis. Analytics Platform System (PDW) akan mengembalikan kesalahan saat mencoba tindakan yang memerlukan replicated_size, distributed_size, atau log_size untuk tumbuh di luar nilai yang ditentukan.
AUTOGROW aktif untuk semua ukuran atau OFF untuk semua ukuran. Misalnya, tidak dimungkinkan untuk mengatur AUTOGROW ON untuk log_size, tetapi tidak mengaturnya untuk replicated_size.
replicated_size [ GB ]
Angka positif. Mengatur ukuran (dalam bilangan bulat atau gigabyte desimal) untuk total ruang yang dialokasikan untuk tabel yang direplikasi dan data terkait pada setiap simpul Komputasi. Untuk persyaratan replicated_size minimum dan maksimum, lihat "Nilai Minimum dan Maksimum" dalam dokumentasi produk Analytics Platform System (PDW).
Jika AUTOGROW AKTIF, tabel yang direplikasi akan diizinkan untuk tumbuh di luar batas ini.
Jika AUTOGROW NONAKTIF, kesalahan akan ditampilkan jika pengguna mencoba membuat tabel baru yang direplikasi, menyisipkan data ke dalam tabel yang direplikasi yang ada, atau memperbarui tabel yang direplikasi yang ada dengan cara yang akan meningkatkan ukuran di luar replicated_size.
distributed_size [ GB ]
Angka positif. Ukurannya, dalam bilangan bulat atau gigabyte desimal, untuk total ruang yang dialokasikan untuk tabel terdistribusi (dan data yang sesuai) di seluruh appliance. Untuk persyaratan distributed_size minimum dan maksimum, lihat "Nilai Minimum dan Maksimum" dalam dokumentasi produk Analytics Platform System (PDW).
Jika AUTOGROW AKTIF, tabel terdistribusi akan diizinkan untuk tumbuh di luar batas ini.
Jika AUTOGROW NONAKTIF, kesalahan akan ditampilkan jika pengguna mencoba membuat tabel terdistribusi baru, menyisipkan data ke dalam tabel terdistribusi yang ada, atau memperbarui tabel terdistribusi yang ada dengan cara yang akan meningkatkan ukuran di luar distributed_size.
log_size [ GB ]
Angka positif. Ukuran (dalam bilangan bulat atau gigabyte desimal) untuk log transaksi di seluruh appliance.
Untuk persyaratan log_size minimum dan maksimum, lihat "Nilai Minimum dan Maksimum" dalam dokumentasi produk Analytics Platform System (PDW).
Jika AUTOGROW AKTIF, file log diizinkan untuk tumbuh di luar batas ini. Gunakan pernyataan DBCC SHRINKLOG (Azure Synapse Analytics) untuk mengurangi ukuran file log ke ukuran aslinya.
Jika AUTOGROW NONAKTIF, kesalahan akan dikembalikan kepada pengguna untuk tindakan apa pun yang akan meningkatkan ukuran log pada simpul Komputasi individual di luar log_size.
Izin
CREATE ANY DATABASE
Memerlukan izin dalam master
database, atau keanggotaan dalam peran server tetap sysadmin.
Contoh berikut menyediakan izin untuk membuat database ke pengguna database Fay.
USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO
Keterangan
Database dibuat dengan tingkat kompatibilitas database 120, yang merupakan tingkat kompatibilitas untuk SQL Server 2014 (12.x). Ini memastikan bahwa database akan dapat menggunakan semua fungsionalitas SQL Server 2014 (12.x) yang digunakan PDW.
Batasan dan Pembatasan
Pernyataan CREATE DATABASE tidak diizinkan dalam transaksi eksplisit. Untuk informasi selengkapnya, lihat Statements.
Untuk informasi tentang batasan minimum dan maksimum pada database, lihat "Nilai Minimum dan Maksimum" dalam dokumentasi produk Analytics Platform System (PDW).
Pada saat database dibuat, harus ada cukup ruang kosong yang tersedia pada setiap simpul Komputasi untuk mengalokasikan total gabungan dari ukuran berikut:
- Database SQL Server dengan tabel ukuran replicated_table_size.
- Database SQL Server dengan tabel dengan ukuran (distributed_table_size /jumlah simpul Komputasi).
- SQL Server mencatat ukuran (log_size / jumlah simpul Komputasi).
Penguncian
Mengambil kunci bersama pada objek DATABASE.
Metadata
Setelah operasi ini berhasil, entri untuk database ini akan muncul di tampilan metadata sys.databases dan sys.objects .
Contoh: Analytics Platform System (PDW)
J. Contoh pembuatan database dasar
Contoh berikut membuat database mytest
dengan alokasi penyimpanan 100 GB per simpul Komputasi untuk tabel yang direplikasi, 500 GB per appliance untuk tabel terdistribusi, dan 100 GB per appliance untuk log transaksi. Dalam contoh ini, AUTOGROW nonaktif secara default.
CREATE DATABASE mytest
WITH
(REPLICATED_SIZE = 100 GB,
DISTRIBUTED_SIZE = 500 GB,
LOG_SIZE = 100 GB );
Contoh berikut membuat database mytest
dengan parameter yang sama seperti di atas, kecuali bahwa AUTOGROW diaktifkan. Ini memungkinkan database tumbuh di luar parameter ukuran yang ditentukan.
CREATE DATABASE mytest
WITH
(AUTOGROW = ON,
REPLICATED_SIZE = 100 GB,
DISTRIBUTED_SIZE = 500 GB,
LOG_SIZE = 100 GB);
B. Membuat database dengan ukuran gigabyte parsial
Contoh berikut membuat database mytest
, dengan AUTOGROW nonaktif, alokasi penyimpanan 1,5 GB per node Komputasi untuk tabel yang direplikasi, 5,25 GB per appliance untuk tabel terdistribusi, dan 10 GB per appliance untuk log transaksi.
CREATE DATABASE mytest
WITH
(REPLICATED_SIZE = 1.5 GB,
DISTRIBUTED_SIZE = 5.25 GB,
LOG_SIZE = 10 GB);