【发布时间】:2019-12-02 18:44:51
【问题描述】:
在 SQL Server 2017 中使用 SSMS,我需要将一组表从旧数据库复制到同一服务器(我的本地主机)上的新数据库中。问题是在遗留数据库中,当我编写一些表的创建脚本时,它们是在文件组上创建的:
CREATE TABLE [dbo].[Foobar](
[FoobarId] [int] IDENTITY(1,1) NOT NULL,
[OtherColumn] [varchar](100) NOT NULL) ON [AdvantagePrimary]
当我运行脚本时,我当然会得到:
指定的文件组“AdvantagePrimary”无效。
有大约 100 多个表和 14 个文件组我正在编写脚本到新数据库(我需要所有架构以及表约束、索引、触发器等)。
所以我的问题是......是否可以复制(使用脚本或其他方式)表和文件组?这里接受的答案(Is it possible to copy a filegroup from one database to another?)似乎说“不。你是 SOL。”我希望他是错的。
我知道这是一个远射,但我尝试了这个:
INSERT INTO NewDatabase.sys.filegroups
SELECT * FROM LegacyDatabase.sys.filegroups
得到:
不允许对系统目录进行临时更新
有没有简单的方法可以做到这一点?
【问题讨论】:
-
我没有任何关联,但 redgate 有非常好的和负担得起的工具来做到这一点。获得它们是很少有成本效益的。
-
@Hogan 好的,谢谢。我会探索并向老板提出案例:)
-
@Hogan,谢谢。我已经下载了免费样本。它生成的脚本中有一些错误。而且我没有看到如何复制文件组。
-
我从来没有发现他们有错误——只是不知道如何使用这个工具。支持是超级响应的,如果有一个 SQL Server 功能它不会复制我相信他们会解释。
标签: sql sql-server ssms sql-server-2017