Sql server SQL Server中存在重复的SQL架构

Sql server SQL Server中存在重复的SQL架构,sql-server,azure-sql-database,database-schema,Sql Server,Azure Sql Database,Database Schema,我有一个要求,用户可以有多个环境进行实验,并测试他们的修改有多好;在用户对他们在工作环境中对数据所做的修改感到满意后,这些修改可以(部分或全部)复制到另一个环境中;这些环境可以创建为空,也可以创建为其他环境的副本;现在我们正在使用SQLAzure,我们当前(未实现)的方法是使用以下语句在同一数据库中创建每个环境作为不同的SQL模式 CREATE SCHEMA 到目前为止,在POCs中,这对我们来说真的很好。但我不喜欢这种方法,因为创建一个新模式需要执行几个脚本来创建新模式中的表和SP,因此在创

我有一个要求,用户可以有多个环境进行实验,并测试他们的修改有多好;在用户对他们在工作环境中对数据所做的修改感到满意后,这些修改可以(部分或全部)复制到另一个环境中;这些环境可以创建为空,也可以创建为其他环境的副本;现在我们正在使用SQLAzure,我们当前(未实现)的方法是使用以下语句在同一数据库中创建每个环境作为不同的SQL模式

CREATE SCHEMA
到目前为止,在POCs中,这对我们来说真的很好。但我不喜欢这种方法,因为创建一个新模式需要执行几个脚本来创建新模式中的表和SP,因此在创建或更新默认模式对象时,我们还需要更新创建模式的脚本,此外,当创建模式时,我们需要使用另一个脚本从原始模式批量复制数据,因此考虑到客户端数据的大小,此过程有时不能像我希望的那样快,而且维护SQL代码以创建环境对团队来说也不太好

所以我的问题是,是否有任何方法可以使用T-SQL语句以不同的名称复制整个dbo架构?我知道这可以使用SQL Server Management Studio和生成脚本选项手动完成,但这必须自动进行,因为用户可以随时创建新环境,我已经查过文件了

ALTER SCHEMA TargetSchema 
TRANSFER SourceSchema.TableName;
但这只会更改数据库对象模式,而不会创建对象的实际副本

编辑:
我没有试图为开发、qa和生产创建不同的数据库,我已经有了它们;我想要实现的是创建一个具有多个环境的web应用程序,每个环境都是最终用户进行实验的沙箱,想象一下,这就像在向公众提供这些数据之前创建一个草稿一样,因此,当用户对修改感到满意时,他们可以将此数据移动到公共环境中,然后在移动数据时,其他人可以看到它

您可以使用创建数据库。。。作为transact-sql语句的副本,创建生产数据库的副本,可用作QA、测试和开发数据库

CREATE DATABASE db_copy   
    AS COPY OF ozabzw7545.db_original ( SERVICE_OBJECTIVE = 'P2') ;

这里ozabzw7545是Azure SQL数据库服务器的名称

以下是特定于Azure SQL数据库的完整语法+附加信息:

有关

您还可以使用PowerShell:

New-AzureRmSqlDatabaseCopy -ResourceGroupName "myResourceGroup" `
-ServerName $sourceserver `
-DatabaseName "MySampleDatabase" `
-CopyResourceGroupName "myResourceGroup" `
-CopyServerName $targetserver `
-CopyDatabaseName "CopyOfMySampleDatabase"

我尝试创建数据库的完整副本,但是这个过程比使用每个数据库对象创建单个模式要慢我们尝试创建数据库的完整副本,但是这个过程比使用每个数据库对象创建单个模式要慢,而且我也不尝试为开发人员创建数据库,qa和生产我已经有了它们;我们想要实现的是创建一个具有多个环境的web应用程序,每个环境就像一个沙箱,供最终用户进行实验,就像在将这些数据提供给公众之前创建一个草稿。部署dacpac怎么样。