将表和文件组从旧数据库复制到新数据库

时间:2019-12-02 18:44:51

标签: sql sql-server ssms sql-server-2017

在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

得到了:

  

不允许临时更新系统目录

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

我最终只是在目标数据库中手动创建了文件组。他们只有14个,所以还算不错。在此处找到有关如何执行此操作的说明:

https://codingsight.com/moving-existing-table-from-primary-filegroup-to-different-filegroup/

enter image description here