如何将完整模式复制到新模式

How to copy complete schema to a new schema

我正在开发一个具有 sql 服务器数据库的 saas 应用程序。我在特定模式(即 customer1.table1、customer1.spGetCustomers 等)中有表、函数和存储过程。我想要一种将整个模式表、函数、存储过程、索引、键等复制到每个新客户的新空模式的方法。我希望有一种快速简便的方法可以做到这一点,这样我就可以为每个新客户添加新模式并使所有内容完全独立。由于成本和额外维护,我不希望为每个客户创建一个新数据库。

请帮忙。

在创建脚本中使用 SQLCMD 变量。
您将编写独立于架构的创建对象脚本,例如:

CREATE TABLE [$(schema)].Table1 ...
CREATE PROCEDURE [$(schema)].Proc1...

然后你将执行它为:

sqlcmd -v schema ="Customer1" -i c:\script.sql