考虑一个设计用于将行从一个表复制到 SQL 2000 数据库中的另一个的 SQL 脚本。传输涉及 750,000 行,简单来说:
INSERT INTO TableB([ColA],[ColB]....[ColG])
SELECT [ColA],[ColB]....[ColG]
FROM TableA
这是一个长期运行的查询,部分原因可能ColB
是它的类型为ntext
. 语句中有一些CONVERT()
操作。SELECT
困难在于大约 15 分钟的操作后,SQL Server 会引发此异常。
无法为数据库 '[DB]' 中的对象 '[TABLE]'.'[PRIMARY_KEY]' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。
更多信息
- 自动增长已经开始。
- 磁盘上有足够的可用空间(~20gb)
- 单个 .mdf 约为 6gb
- 源表或目标表上没有触发器
问题
需要通过 Management Studio 或通过 T-SQL 设置哪些选项以允许数据库根据需要增长?你会建议什么其他补救措施?
解析度
db 无法按需增长,因为我在 SQL Server 2008 Express实例上托管此数据库。升级到非绝育版本的 SQL Server 将解决此问题。