在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
得到了:
不允许临时更新系统目录
有一种简单的方法吗?
答案 0 :(得分:0)
我最终只是在目标数据库中手动创建了文件组。他们只有14个,所以还算不错。在此处找到有关如何执行此操作的说明:
https://codingsight.com/moving-existing-table-from-primary-filegroup-to-different-filegroup/