我在SqlServer 2008 R2中有一个模板架构(dbo),我们将其用作每个客户数据的主架构。如何轻松地将所有dbo的对象“复制”到新架构中?
ALTER SCHEMA [target] TRANSFER [source].[objectname]
删除原始源对象,我需要它以备将来复制。
我确实有一个VSTSDB构建过程,所以我可以在dbo上获取其输出并查找/替换,但这感觉就像构建过程而不是供应过程。
这似乎是分片世界中的典型过程,但我没有发现这个过程的工具方式。
答案 0 :(得分:0)
一种方法是使用sqlcmd variables作为模式名称和每个客户的其他值,然后您只需在运行DDL脚本时设置变量。
答案 1 :(得分:-1)
不幸的是没有直接的方法。你可以用这个:
SELECT 'ALTER SCHEMA NewSchema TRANSFER dbo.'+name
FROM sys.objects
WHERE type IN ('U','V','P','Fn')
AND SCHEMA_NAME(SCHEMA_ID) = 'dbo'