TSQL 复制现有数据库

Shi*_*ama 2 sql-server azure-sql-database

我正在学习如何管理 MS Sql server 2012,遇到一个问题及其建议的解决方案,用于复制不同名称的现有数据库。

管理一个名为Orders的windows azure sql数据库,需要创建该表的副本并重命名为Order_Reporting

CREATE DATABASE Order_Reporting COPY OF Orders 
Run Code Online (Sandbox Code Playgroud)

我想知道这样有用的查询是否也可以在标准 ms sql server 中使用?

Kin*_*hah 8

我想知道这样有用的查询是否也可以在标准 ms sql server 中使用?

否,CREATE DATABASE .. COPY OF ..仅适用于 Azure SQL 数据库

作为旁注,

使用 CREATE DATABASE 语句复制数据库是一种异步操作。因此,在整个复制过程中不需要连接到 SQL 数据库服务器。您可以使用 sys.dm_database_copies 和 sys.databases 视图监视复制过程。该sys.dm_operations_status视图可以和它返回的数据库操作,包括数据库副本的状态使用。

为了在 SQL Server 中创建当前数据库的副本,您必须备份数据库,然后使用不同的名称恢复它

例如

backup database OriginalDB
to disk = 'D:\backup\OriginalDB_full.bak'
with init, stats =10;

restore database new_db_name
from disk = 'D:\backup\OriginalDB_full.bak'
with stats =10, recovery,
move 'logical_Data_file' to 'D:\data\new_db_name.mdf',
move 'logical_log_file' to 'L:\log\new_db_name_log.ldf'
Run Code Online (Sandbox Code Playgroud)