CREATE DATABASE (Azure SQL Database)
建立新資料庫。 您必須連接到 master 資料庫才能建立新的資料庫。
適用於:Azure SQL Database. 如需與 SQL Server 有關的語法,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。 |
語法
CREATE DATABASE database_name [ COLLATE collation_name ]
{
(<edition_options> [, ...n])
}
<edition_options> ::=
{
MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB
| EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' }
| SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' }
}
[;]
To copy a database:
CREATE DATABASE destination_database_name
AS COPY OF [source_server_name.] source_database_name
[;]
引數
此語法圖表示範 Azure SQL Database 中支援的引數。
database_name
新資料庫的名稱。 這個名稱在 SQL 資料庫 伺服器上必須是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。Collation_name
指定資料庫的預設定序。 定序名稱可以是 Windows 定序名稱或 SQL 定序名稱。 如果沒有指定,資料庫會擁有指派的預設定序,即 SQL_Latin1_General_CP1_CI_AS。如需有關 Windows 和 SQL 定序名稱的詳細資訊,請參閱<COLLATE (Transact-SQL)>。
EDITION
指定資料庫的服務層。 可用的值為:'web'、'business'、'basic'、'standard' 和 'premium'。當指定 EDITION 但是未指定 MAXSIZE 時,MAXSIZE 將會設定為版本所支援的最高限制大小。
MAXSIZE
指定資料庫的大小上限。 MAXSIZE 對於指定的 EDITION (服務層) 而言必須有效。下表列出服務層支援的 MAXSIZE 值與預設值 (D):MAXSIZE
Web
Business
Basic
Standard
Premium
100 MB
√
√
√
√
500 MB
√
√
√
1 GB
√ (D)
√
√
√
2 GB
√ (D)
√
√
5 GB
√
√
√
10 GB
√ (D)
√
√
20 GB
√
√
√
30 GB
√
√
√
40 GB
√
√
√
50 GB
√
√
√
100 GB
√
√
√
150 GB
√
√
√
200 GB
√
√
250 GB
√ (D)
√
300 GB
√
400 GB
√
500 GB
√ (D)
以下規則會套用到 MAXSIZE 和 EDITION 引數:
如果指定 MAXSIZE 值的話,它必須是上表所示的有效值。
如果 MAXSIZE 設定為小於 5 GB 的值而且未指定 EDITION,則資料庫版本將會自動設定為 Web Edition。
如果 MAXSIZE 設定為大於 5 GB 的值而且未指定 EDITION,則資料庫版本將會自動設定為 Business Edition。
如果指定了 EDITION 但是未指定 MAXSIZE,就會使用版本的預設值。 例如,如果 EDITION 設定為 Standard 而且未指定 MAXSIZE,則 MAXSIZE 會自動設定為 500 MB。
如果 MAXSIZE 和 EDITION 皆未指定,則 EDITION 會設定為 Web 而 MAXSIZE 則設定為 1 GB。
SERVICE_OBJECTIVE
指定效能等級。 如需服務目標描述和有關大小、版本及服務目標組合的詳細資訊,請參閱 Azure SQL Database 服務層和效能層級。 如果 EDITION 不支援指定的 SERVICE_OBJECTIVE,將會收到錯誤。destination_database_name
資料庫複製建立之資料庫的名稱。 這個名稱在 (目的地) SQL 資料庫 伺服器上必須是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。AS COPY OF [source_server_name.]source_database_name
用於將資料庫複製到相同或不同的 SQL 資料庫 伺服器上。注意
AS COPY OF 不可搭配任何其他 CREATE DATABASE 引數使用。
source_server_name
來源資料庫所在的 SQL 資料庫 伺服器名稱。 當來源資料庫和目的地資料庫位於相同的 SQL 資料庫 伺服器上時,這個參數是選擇性的。附註:AS COPY OF 引數不支援唯一的完整網域名稱。 換句話說,如果您伺服器的完整網域名稱為 serverName.database.windows.net,則在資料庫複製期間僅可使用 serverName。
source_database_name
要複製的資料庫名稱。
使用 CREATE DATABASE 陳述式時,Azure SQL Database 不支援下列引數和選項:
與檔案實際位置相關聯的參數,例如 <filespec> 和 <filegroup>
外部存取選項,例如 DB_CHAINING 和 TRUSTWORTHY
附加資料庫
Service Broker 選項,例如 ENABLE_BROKER、NEW_BROKER 和 ERROR_BROKER_CONVERSATIONS
資料庫快照集
如需有關引數和 CREATE DATABASE 陳述式的詳細資訊,請參閱<CREATE DATABASE (SQL Server Transact-SQL)>。
備註
Azure SQL Database 中的資料庫有數個預設設定,這些設定是在建立資料庫時所設定。 如需有關這些預設設定的詳細資訊,請參閱<DATABASEPROPERTYEX (Transact-SQL)>中的值清單。
MAXSIZE 提供了限制資料庫大小的功能。 如果資料庫的大小達到其 MAXSIZE,您將收到錯誤碼 40544。 發生這種情況時,您就無法插入或更新資料,或是建立新物件 (例如資料表、預存程序、檢視和函數)。 不過,您仍然可以讀取和刪除資料、截斷資料表、卸除資料表和索引,以及重建索引。 然後您可以將 MAXSIZE 升級為大於目前資料庫大小的值,或是刪除某些資料以釋出儲存空間。 在您能夠插入新資料之前,最長可能會有十五分鐘的延遲。
重要事項 |
---|
CREATE DATABASE 陳述式必須是 Transact-SQL 批次中唯一的陳述式。執行 CREATE DATABASE 陳述式時,您必須連接到 master 資料庫。 |
若要在稍後變更大小、版本或服務目標值,請使用<ALTER DATABASE (Transact-SQL)>。
資料庫複本
使用 CREATE DATABASE 陳述式複製資料庫是一項非同步作業。 因此,整個複製程序期間都不需要連接至 SQL 資料庫 伺服器。 CREATE DATABASE 陳述式會在 sys.databases 中建立項目之後但是在資料庫複製作業完成之前,將控制權交還給使用者。 換句話說,CREATE DATABASE 陳述式會在資料庫複製仍進行時成功傳回。 您可以使用 sys.dm_database_copies 和 sys.databases 檢視監視複製程序。 sys.dm_operations_status 檢視表也可以使用,因為它會傳回資料庫作業的狀態,包括資料庫複製。 當複製程序順利完成時,目的地資料庫的交易會與來源資料庫一致。 如需複製 SQL 資料庫 中資料庫的詳細資訊,請參閱在 Azure SQL Database 中複製資料庫。
注意
當資料庫複製到新的資料庫時,將會使用與來源資料庫相同的服務層和效能層級建立新的資料庫。例如,P1 效能層級的 Premium 資料庫複本將會建立為 P1 效能層級的新 Premium 資料庫。
下列語法和語意規則適用於使用 AS COPY OF 引數的情況:
來源伺服器名稱和複製目標的伺服器名稱可以相同,也可以不同。 兩個名稱相同時,這個參數會是選擇性的,而且預設將使用目前工作階段的伺服器內容。
來源和目的地資料庫名稱必須加以指定、是唯一的,並且符合 SQL Server 的識別碼規則。 如需詳細資訊,請參閱<識別碼>。
CREATE DATABASE 陳述式必須在將要建立新資料庫之 SQL 資料庫 伺服器的 master 資料庫內容中執行。
複製完成後,目的地資料庫必須做為獨立資料庫管理。 您可以在與來源資料庫不相關的情況下,單獨對新資料庫執行 ALTER DATABASE 和 DROP DATABASE 陳述式。 您也可以將新資料庫複製到另一個新資料庫。
複製程序完成之前,無法存取目的地資料庫。 您可以藉由查詢目的地 SQL 資料庫 伺服器上 sys.databases 檢視表中的 sys.dm_operations_status 或 state 資料行或 sys.dm_database_copies 檢視表中的 percentage_complete 資料行,查看複製程序的狀態。
在複製程序期間,sys.databases 檢視的 state 資料行會在目的地 SQL 資料庫 伺服器上顯示 Copying。 此外,sys.dm_database_copies 的 percentange_complete 資料行會顯示目的地伺服器上已複製的位元組百分比。
資料庫複製正在進行時,可能會繼續存取來源資料庫。
Permissions
只有伺服器層級主體登入 (透過佈建程序所建立) 或 dbmanager 資料庫角色的成員才能建立資料庫。 來源和目標邏輯伺服器都必須屬於相同的 Azure 訂閱。