Bagikan melalui


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

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:

  1. SQL Server menggunakan salinan database model untuk menginisialisasi database dan metadatanya.
  2. GUID broker layanan ditetapkan ke database.
  3. 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 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 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 dan Spri2_dat. Kenaikan FILEGROWTH untuk file-file ini ditentukan sebagai 15%.
  • Grup file bernama SalesGroup1 dengan file SGrp1Fi1 dan SGrp1Fi2.
  • Grup file bernama SalesGroup2 dengan file SGrp2Fi1 dan SGrp2Fi2.

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_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 AdventureWorks2022 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
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 di C:\MyFSfolder\Photos dan FSPhotos2, terletak di D:\MyFSfolder\Photos. Ini ditandai sebagai grup file FILESTREAM default.
  • FileStreamResumes berisi data FILESTREAM. Ini berisi satu kontainer data FILESTREAM, FSResumes, yang terletak di C:\MyFSfolder\Resumes.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
    (
    NAME = FileStreamDB_data
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- 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

* 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, , , S1S2, S4S3, , S6, S9S7, S12, P1, , P2, P4, , P6, , , P11P15
  • 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 , MAXSIZEAnda 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 atau replication_state_desc di dm_database_copies atau state 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 konteks master 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 dan DROP 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');

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

  • WITHopsi tidak didukung, kecuali untuk WITH 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;

* 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

* 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);