Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 *
Azure Synapse
Analitik
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 = 'path-to-directory-on-a-DAX-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 ]
}
Lampirkan 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
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 log 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 versi 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 <filespec> item yang dipisahkan koma yang menentukan file data untuk grup file utama. Daftar file dalam grup file utama dapat diikuti oleh daftar <filegroup> item opsional yang dipisahkan koma yang menentukan grup file pengguna dan filenya.
UTAMA
Menentukan bahwa daftar terkait <filespec> menentukan file utama. File pertama yang ditentukan dalam <filespec> entri dalam 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 CREATE DATABASE tercantum dalam pernyataan 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 <filespec> item yang dipisahkan koma yang menentukan file log. Jika LOG ON tidak ditentukan, satu file log dibuat secara otomatis, 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.
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 FOR ATTACH klausa atau FOR ATTACH_REBUILD_LOG . Untuk informasi tentang cara mengubah kolase database terlampir, lihat Mengatur atau mengubah kolase database.
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 yang terkandung.
Opsi WITH <>
<filestream_option>
NON_TRANSACTED_ACCESS = { NONAKTIF | READ_ONLY | PENUH }
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Menentukan tingkat akses FILESTREAM non-transaksi ke database.
Nilai Deskripsi OFFAkses non-transaksional dinonaktifkan. READONLYData FILESTREAM dalam database ini dapat dibaca oleh proses non-transaksi. FULLAkses non-transaksi penuh ke FILESTREAM FileTables diaktifkan. DIRECTORY_NAME = <directory_name>
Berlaku untuk: SQL Server 2012 (11.x) dan versi 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 jika
CONTAINMENTtelah diatur kePARTIAL. JikaCONTAINMENTdiatur keNONE, kesalahan terjadi.
DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <nama> bahasa | <alias bahasa>
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Lihat 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 versi yang lebih baru
Lihat Konfigurasi server: bahasa default untuk deskripsi lengkap opsi ini.
NESTED_TRIGGERS = { NONAKTIF | ON }
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Lihat Konfigurasi server: pemicu berlapis untuk deskripsi lengkap opsi ini.
TRANSFORM_NOISE_WORDS = { NONAKTIF | ON }
Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru
Lihat Konfigurasi server: mengubah kata-kata kebisingan 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 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.
Ketika OFF, database tidak dapat berpartisipasi dalam rantai kepemilikan lintas database. Default adalah OFF.
Penting
Instans SQL Server mengenali pengaturan ini ketika opsi server rantai kepemilikan lintas database adalah 0 (OFF). Ketika rantai kepemilikan lintas database adalah 1 (ON), 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, , modeltempdb.
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.
Ketika OFF, modul database dalam konteks peniruan tidak dapat mengakses sumber daya di luar database. Default adalah OFF.
TRUSTWORTHY diatur ke OFF setiap kali database dilampirkan.
Secara default, semua database sistem kecuali msdb database telah TRUSTWORTHY diatur ke OFF. Nilai tidak dapat diubah untuk model database dan tempdb . Kami menyarankan agar Anda tidak pernah mengatur TRUSTWORTHY opsi ke ON untuk master database.
PERSISTENT_LOG_BUFFER = AKTIF ( DIRECTORY_NAME = 'directory_name' )
Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru
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 dan Menambahkan buffer log persisten ke database.
LEDGER = { AKTIF | 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 lain <filespec> 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:
- 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 FOR ATTACH klausa.
Catatan
Database yang dibuat oleh versi SQL Server yang lebih baru tidak dapat dilampirkan di versi sebelumnya.
Di SQL Server, file teks lengkap apa pun yang merupakan bagian dari database yang sedang dilampirkan dilampirkan dengan database. Untuk menentukan jalur baru katalog teks lengkap, tentukan lokasi baru tanpa nama file sistem operasi teks lengkap. Untuk informasi selengkapnya, lihat contoh .
Melampirkan database yang berisi opsi FILESTREAM "Nama direktori" meminta SQL Server untuk memverifikasi bahwa nama tersebut 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 RESTRICTED_USER opsi .
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 klausa WITH <service_broker_option> dalam Anda FOR ATTACH :
Mengontrol pengiriman pesan Service Broker dan pengidentifikasi Service Broker untuk database. Opsi Service Broker hanya dapat ditentukan saat FOR ATTACH klausul digunakan.
AKTIFKAN_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 Pemadatan 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.
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 Anda mengambil cadangan database lengkap segera 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 membutuhkan lebih sedikit ruang log daripada database asli.
FOR ATTACH_REBUILD_LOG tidak dapat ditentukan pada rekam jepret database.
Untuk informasi selengkapnya tentang melampirkan dan melepaskan database, lihat Melepas dan melampirkan database (SQL Server).
<Filespec>
Mengontrol properti file.
LOGICAL_FILE_NAME NAMA
Menentukan nama logis untuk file.
NAME diperlukan saat FILENAME ditentukan, kecuali saat menentukan salah satu FOR ATTACH klausa. Grup FILESTREAM file tidak dapat diberi nama PRIMARY.
logical_file_name
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.
NAMA FILE { 'os_file_name' | 'filestream_path' }
Menentukan nama file sistem operasi (fisik).
os_file_name
Jalur dan nama file yang 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
CREATE DATABASEpernyataan. Untuk informasi selengkapnya, lihat File Database dan Grup File nanti di artikel ini.SIZE,MAXSIZE, danFILEGROWTHparameter dapat diatur saat jalur UNC ditentukan untuk file.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 (12.x) dan versi yang lebih baru.
File data tidak boleh dimasukkan ke 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,
FILENAMEmengacu pada jalur tempat data FILESTREAM akan disimpan. Jalur hingga folder terakhir harus ada, dan folder terakhir tidak boleh ada. Misalnya, jika Anda menentukan jalurC:\MyFiles\MyFilestreamData,C:\MyFilesharus ada sebelum Anda menjalankanALTER DATABASE, tetapiMyFilestreamDatafolder tidak boleh ada.Grup file dan file (
<filespec>) harus dibuat dalam pernyataan yang sama.Properti
SIZEdanFILEGROWTHtidak berlaku untuk grup file FILESTREAM.
Ukuran UKURAN
Menentukan ukuran file.
SIZE tidak dapat ditentukan ketika os_file_name ditentukan sebagai jalur UNC.
SIZE tidak berlaku untuk grup file FILESTREAM.
ukuran
Ukuran awal file.
Ketika ukuran tidak disediakan untuk file utama, Mesin Database menggunakan ukuran file utama dalam
modeldatabase. Ukuranmodeldefault 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 sebelumnya). Ukuran yang ditentukan untuk file utama harus setidaknya sebesar filemodelutama 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 2.147.483.647, 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
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 MAXSIZE pengaturan.
FILEGROWTH tidak dapat ditentukan ketika os_file_name ditentukan sebagai jalur UNC.
FILEGROWTH tidak berlaku untuk grup file FILESTREAM.
growth_increment
Jumlah ruang yang ditambahkan ke file setiap kali ruang baru diperlukan.
Nilai dapat ditentukan dalam
KB, ,MB,GBTB, atau persen (%). Jika angka ditentukan tanpaKBakhiran , ,MBatau%, defaultnya adalahMB. 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
FILEGROWTHtidak 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
Nama logis grup file.
filegroup_name
filegroup_name harus unik dalam database dan tidak boleh nama
PRIMARYyang disediakan sistem danPRIMARY_LOG. 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.
BAWAAN
Menentukan grup file bernama adalah grup file default dalam database.
BERISI MEMORY_OPTIMIZED_DATA
Berlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru
Menentukan bahwa grup file menyimpan memory_optimized data dalam sistem file. Untuk informasi selengkapnya, lihat gambaran umum dan skenario penggunaan OLTPIn-Memory. Hanya satu
MEMORY_OPTIMIZED_DATAgrup file 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
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 CREATE DATABASE ON klausul, pernyataan gagal dan kesalahan dimunculkan.
Untuk deskripsi NAME dan dan FILENAME nilainya, lihat deskripsi nilai yang setara <filespec> .
Catatan
Saat Anda membuat rekam jepret database, opsi lain <filespec> dan kata kunci PRIMARY 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.
Di SQL Server 2017 (14.x) dan versi yang lebih lama, database sumber untuk rekam jepret database tidak dapat berisi MEMORY_OPTIMIZED_DATA grup file. Dukungan untuk rekam jepret database dalam memori ditambahkan di SQL Server 2019 (15.x).
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 CREATE DATABASE pernyataan 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- Aliran File
- 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.
Tampilan Sementara Database
Anda dapat menggunakan CREATE DATABASE pernyataan untuk membuat tampilan statis baca-saja, rekam jepretdatabase 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 berlanjut hingga dihapus dengan menggunakan DROP DATABASE.
Untuk informasi selengkapnya, lihat Rekam jepret database (SQL Server) dan Membuat rekam jepret database.
Opsi database
Beberapa opsi database secara otomatis diatur setiap kali Anda membuat database. Untuk daftar opsi ini, lihat OPSI UBAH KUMPULAN 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 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 CREATE DATABASE pernyataan, 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 DATABASEMemerlukan 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 Faydatabase .
USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO
Izin pada file data dan 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 <filespec> memiliki item, file database utama adalah ukuran file utama database model . Log transaksi diatur ke nilai yang lebih besar: 512 KB atau 25% ukuran file data utama. Karena MAXSIZE tidak ditentukan, file dapat tumbuh 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 maupun KB tidak ditentukan dalam SIZE parameter untuk Sales_dat file, MB atau KB tidak digunakan 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
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 = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100 MB, MAXSIZE = 200,
FILEGROWTH = 20
)
LOG ON (
NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100 MB,
MAXSIZE = 200,
FILEGROWTH = 20
), (
NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100 MB,
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_datdanSpri2_dat. KenaikanFILEGROWTHuntuk file-file ini ditentukan sebagai15%. - Grup file bernama
SalesGroup1dengan fileSGrp1Fi1danSGrp1Fi2. - Grup file bernama
SalesGroup2dengan fileSGrp2Fi1danSGrp2Fi2.
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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);
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 belum berubah sejak dibuat, hanya file utama yang harus ditentukan dalam FOR ATTACH klausa. Dimulai dengan SQL Server 2005 (9.x), setiap file teks lengkap yang merupakan bagian dari database yang dilampirkan dilampirkan dengan database.
USE master;
GO
EXECUTE 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_snapshot0600database . 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 AdventureWorks2025 data dan file log. Dalam contoh ini, katalog teks lengkap dipindahkan dari lokasi defaultnya ke lokasi c:\myFTCatalogsbaru . File data dan log tetap berada di lokasi defaultnya.
USE master;
GO
--Detach the AdventureWorks2022 database
EXECUTE 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
Saya. 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_databerisi data baris. Ini berisi satu file,FileStreamDB_data.mdfdengan jalur default.FileStreamPhotosberisi data FILESTREAM. Ini berisi dua kontainer data FILESTREAM,FSPhotos, terletak diC:\MyFSfolder\PhotosdanFSPhotos2, terletak diD:\MyFSfolder\Photos. Ini ditandai sebagai grup file FILESTREAM default.FileStreamResumesberisi 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 AS 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 = 10 MB,
MAXSIZE = 50 MB,
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 is 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 = 5 MB,
MAXSIZE = 25 MB,
FILEGROWTH = 5 MB
);');
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 = 100 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1 MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(NAME = N'FS1', FILENAME = N'C:\BlobStore\FS1', MAXSIZE = UNLIMITED),
(NAME = N'FS2', FILENAME = N'C:\BlobStore\FS2', MAXSIZE = 100 MB)
LOG ON (
NAME = N'BlobStore1_log',
FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
SIZE = 100 MB,
MAXSIZE = 1 GB,
FILEGROWTH = 1 MB
);
GO
ALTER DATABASE [BlobStore1]
ADD FILE (
NAME = N'FS3',
FILENAME = N'C:\BlobStore\FS3',
MAXSIZE = 100 MB
) TO FILEGROUP [FS];
GO
Konten terkait
- MENGUBAH DATABASE (T-SQL)
- Pencopotan dan lampirkan database (SQL Server)
- DROP DATABASE (Transact-SQL)
- EVENTDATA (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)
- sp_detach_db
- sp_removedbreplication
- Rekam jepret database (SQL Server)
- Memindahkan file database
- Database
- Data Objek Besar Biner (Blob) (SQL Server)
* Database SQL *
Azure Synapse
Analitik
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_S_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_S_Gen5_n'
| 'HS_PRMS_n'
| 'HS_MOPRMS_n'
| { ELASTIC_POOL(name = <elastic_pool_name>) } } )
]
[ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' } ) ]
[ ; ]
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 database.
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, yaitu SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, COLLATE.
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 SQL_Latin1_General_CP1_CI_AS kolate. 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 untuk 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 menggunakan kolate default
SQL_Latin1_General_CP1_CI_ASyang 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 kolate peka huruf besar/kecil, yang digunakan untuk pengidentifikasi objek.CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS WITH CATALOG_COLLATION = DATABASE_DEFAULT;
BACKUP_STORAGE_REDUNDANCY = {'LOKAL' | 'ZONA' | 'GEO' | 'ZONA 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.
Gunakan GEOZONE untuk penyimpanan redundan zona geografis. Penyimpanan redundan zona geografis (GZRS) menawarkan tingkat perlindungan tertinggi terhadap pemadaman zona serta pemadaman regional untuk beban kerja apa pun.
Untuk memberlakukan residensi data saat Anda membuat database dengan menggunakan T-SQL, gunakan LOCAL atau ZONE sebagai input ke BACKUP_STORAGE_REDUNDANCY parameter .
Saat Anda membuat database sebagai salinan database lain dengan AS COPY OF, opsi yang menentukan didukung dan harus dibungkus dalam tanda kurung. Contohnya,WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.
LEDGER = { AKTIF | 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.
UKURAN MAKSIMAL
Menentukan ukuran maksimum database.
MAXSIZE harus valid untuk (tingkat layanan) yang ditentukan EDITION .
Berikut ini adalah nilai dan default (D) yang didukung MAXSIZE 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 1 |
|---|---|---|---|---|---|
| 100 MB | Yes | Yes | Yes | Yes | Yes |
| 500 MB | Yes | Yes | Yes | Yes | Yes |
| 1 GB | Yes | Yes | Yes | Yes | Yes |
| 2 GB | Ya (D) | Yes | Yes | Yes | Yes |
| 5 GB | T/A | Yes | Yes | Yes | Yes |
| 10 GB | T/A | Yes | Yes | Yes | Yes |
| 20 GB | T/A | Yes | Yes | Yes | Yes |
| 30 GB | T/A | Yes | Yes | Yes | Yes |
| 40 GB | T/A | Yes | Yes | Yes | Yes |
| 50 GB | T/A | Yes | Yes | Yes | Yes |
| 100 GB | T/A | Yes | Yes | Yes | Yes |
| 150 GB | T/A | Yes | Yes | Yes | Yes |
| 200 GB | T/A | Yes | Yes | Yes | Yes |
| 250 GB | T/A | Ya (D) | Ya (D) | Yes | Yes |
| 300 GB | T/A | T/A | Yes | Yes | Yes |
| 400 GB | T/A | T/A | Yes | Yes | Yes |
| 500 GB | T/A | T/A | Yes | Ya (D) | Yes |
| 750 GB | T/A | T/A | Yes | Yes | Yes |
| 1.024 GB | T/A | T/A | Yes | Yes | Ya (D) |
| Dari 1.024 GB hingga 4.096 GB dalam kenaikan 256 GB | T/A | T/A | T/A | T/A | Yes |
1 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 lebih besar dari 1 TB saat ini tersedia di wilayah berikut: AS Timur2, AS 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 untuk database tunggal menggunakan model pembelian DTU - Azure SQL Database.
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 MAXSIZE argumen dan EDITION :
Jika
EDITIONditentukan tetapiMAXSIZEtidak ditentukan, nilai default untuk edisi digunakan. Misalnya, jikaEDITIONdiatur ke Standar, danMAXSIZEtidak ditentukan, maka MAX'SIZE secara otomatis diatur ke 250 MB.Jika tidak atau
MAXSIZEEDITIONditentukan,EDITIONdiatur ke 'GeneralPurpose', danMAXSIZEdiatur ke 32 GB.
SERVICE_OBJECTIVE
Menentukan ukuran komputasi dan tujuan layanan.
Untuk model pembelian DTU:
S0, , ,S1S2,S3S4, ,S6,S7S9,S12,P1, ,P2,P4, ,P6, , ,P11P15Untuk 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.- Misalnya:
-
GP_Gen5_8untuk Tujuan Umum, komputasi yang disediakan, Seri Standar (Gen5), 8 vCore. -
GP_S_Gen5_8untuk Tujuan Umum, komputasi tanpa server, Seri Standar (Gen5), 8 vCore. -
HS_Gen5_8untuk Hyperscale, komputasi yang disediakan, Seri Standar (Gen5), 8 vCore. -
HS_S_Gen5_8untuk Hyperscale, komputasi tanpa server, seri Standar (Gen5), 8 vCore.
-
- Misalnya:
Untuk deskripsi tujuan layanan dan informasi selengkapnya tentang ukuran, edisi, dan kombinasi tujuan layanan, lihat Tingkat Layanan Azure SQL Database. Jika yang ditentukan SERVICE_OBJECTIVE tidak didukung oleh EDITION, Anda menerima kesalahan. Untuk mengubah SERVICE_OBJECTIVE nilai dari satu tingkat ke tingkat lainnya (misalnya dari S1 ke P1), Anda juga harus mengubah nilainya 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 kumpulan Elastis membantu Anda mengelola dan menskalakan beberapa database di Azure 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 OFtidak mendukung nama domain unik yang sepenuhnya memenuhi syarat. Dengan kata lain, jika nama domain server Anda yang sepenuhnya memenuhi syarat adalahserverName.database.windows.net, gunakan hanyaserverNameselama 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 , MAXSIZEAnda menerima kode kesalahan 40544. Saat 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 hingga 15 menit sebelum Anda dapat memasukkan 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 selama 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: Kueri
percentage_completekolom atau direplication_state_descdm_database_copies ataustatekolom dalamsys.databasestampilan. Tampilan sys.dm_operation_status dapat digunakan serta mengembalikan status operasi database termasuk salinan database.
Ketika 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 database.
- Pernyataan
CREATE DATABASEharus dijalankan dalam konteksmasterdatabase server SQL Database tempat database baru akan dibuat. - Setelah penyalinan selesai, database tujuan harus dikelola sebagai database independen. Anda dapat menjalankan
ALTER DATABASEpernyataan danDROP DATABASEterhadap 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 Menyalin salinan database yang konsisten secara transaksional di Azure SQL Database.
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
dbmanagerperan 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 dasar
Contoh dasar untuk membuat database.
CREATE DATABASE TestDB1;
Contoh dasar dengan edisi
Contoh dasar 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_originaldb_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 <database>.db_original
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8');
Contoh berikut membuat salinan database, bernama db_originaldb_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 <database>.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) 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
* Instans Terkelola SQL *
Azure Synapse
Analitik
Azure SQL Managed Instance
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 .
Untuk instans terkelola SQL, awalnya MAXSIZE secara implisit diatur ke ukuran disk saat ini, dan tidak berubah secara otomatis saat Anda memperluas ukuran disk dari portal Microsoft Azure. Setelah memperluas disk, Anda juga harus memperluas MAXSIZE dengan ALTER DATABASE untuk menghindari kesalahan penuh file 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 database.
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, yaitu SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, COLLATE.
LEDGER = { AKTIF | 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 ditentukan.
WITHopsi tidak didukung, kecuali untukWITH LEDGER.Petunjuk / Saran
Sebagai solusinya, gunakan ALTER DATABASE. setelah
CREATE DATABASEmengatur opsi database dan untuk menambahkan file.
Izin
Untuk membuat database, login harus menjadi salah satu jenis prinsipal keamanan berikut:
- Login utama tingkat server
- Administrator Microsoft Entra untuk server logis di Azure
- Login yang merupakan anggota peran database dbcreator
Contoh
Contoh dasar
Contoh dasar 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 DATABASEdidukung untuk kumpulan SQL khusus mandiri (sebelumnya SQL DW) menggunakan tingkat layanan Gen2. -
CREATE DATABASEtidak didukung untuk kumpulan SQL khusus di ruang kerja Azure Synapse Analytics. Sebagai gantinya, gunakan portal Azure. -
CREATE DATABASEdidukung 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 database.
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, yaitu SQL_Latin1_General_CP1_CI_AS.
Untuk informasi selengkapnya tentang nama kolase Windows dan SQL, lihat COLLATE.
UKURAN MAKSIMAL
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 MENGUBAH tingkat kompatibilitas DATABASE.
Izin
Izin yang diperlukan:
- Login utama tingkat server, dibuat oleh proses provisi, atau
- Anggota peran database dbmanager .
Penanganan kesalahan
Jika ukuran database mencapai MAXSIZE, SQL Server akan menaikkan kode kesalahan 40544. Saat 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 kolamen database setelah database dibuat.
Contoh: Azure Synapse Analytics
J. Contoh dasar
Contoh dasar 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 dasar 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
- ALTER DATABASE (Azure Synapse Analytics)
- BUAT TABEL
- DROP DATABASE (Transact-SQL)
Azure Synapse
Analitik
* 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 | NONAKTIF }
Menentukan apakah parameter replicated_size, distributed_size, dan log_size secara otomatis tumbuh sesuai kebutuhan di luar ukuran yang ditentukan. Nilai defaultnya adalah OFF.
Jika AUTOGROW adalah ON, replicated_size, distributed_size, dan log_size tumbuh sesuai kebutuhan dengan setiap penyisipan data, pembaruan, atau tindakan lain yang memerlukan lebih banyak penyimpanan daripada yang telah dialokasikan.
Jika AUTOGROW adalah OFF, ukurannya tidak tumbuh secara otomatis. Analytics Platform System (PDW) mengembalikan kesalahan saat mencoba tindakan yang memerlukan replicated_size, distributed_size, atau log_size untuk tumbuh melebihi nilai yang ditentukan.
AUTOGROW baik ON untuk semua ukuran atau OFF untuk semua ukuran. Misalnya, tidak dimungkinkan untuk mengatur AUTOGROW ONuntuk 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 adalah ON, tabel yang direplikasi dapat tumbuh di luar batas ini.
Jika AUTOGROW adalah OFF, kesalahan dikembalikan 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 adalah ON, tabel terdistribusi diizinkan untuk tumbuh di luar batas ini.
Jika AUTOGROW adalah OFF, kesalahan dikembalikan 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 adalah ON, file log diizinkan untuk tumbuh di luar batas ini. Gunakan pernyataan DBCC SHRINKLOG - Analytics Platform System (PDW) untuk mengurangi ukuran file log ke ukuran aslinya.
Jika AUTOGROW adalah OFF, kesalahan 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 dapat menggunakan semua fungsionalitas SQL Server 2014 (12.x) yang digunakan PDW.
Batasan
Pernyataan CREATE DATABASE tidak diizinkan dalam transaksi eksplisit. Untuk informasi selengkapnya, lihat pernyataanTransact-SQL.
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 DATABASE objek.
Metainformasi
Setelah operasi ini berhasil, entri untuk database ini 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 dinonaktifkan 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, kecuali yang 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 simpul 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);
Konten terkait
- ALTER DATABASE (Sistem Platform Analitik)
- DROP DATABASE (Transact-SQL)