对于SQL Server 2005+,可以使用以下命令:
SELECT FILE_ID, type, type_desc,
CAST( CAST( (CASE WHEN size < 128 THEN 128 ELSE size END) * 8. / 1024. AS INT ) AS VARCHAR(20) ) + 'MB' AS SIZE,
CASE max_size WHEN -1 THEN 'UNLIMITED' ELSE CAST( CAST( max_size * 8. / 1024. AS INT ) AS VARCHAR(20) ) + 'MB' END AS MAXSIZE,
CASE is_percent_growth
WHEN 0 THEN CAST( CAST( growth * 8. / 1024. AS INT ) AS VARCHAR(20) ) + 'MB'
WHEN 1 THEN CAST( growth AS VARCHAR(30) ) + '%'
END AS FILEGROWTH
FROM sys.master_files
WHERE database_id = DB_ID('model')
GO
这将检索模型数据库的文件定义。
以后,您可以在CREATE DATABASE或ALTER DATABASE中使用它。
SSMS实际上使用SMO来检索这些参数,然后创建一个类似于以下内容的脚本:
CREATE DATABASE [aaa] ON PRIMARY
( NAME = N'aaa', FILENAME = N'D:\Data\aaa.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'aaa_log', FILENAME = N'D:\Logs\aaa_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
如果您的应用程序正在创建数据库,而您不能修改该应用程序-
那么创建完成后,您必须使用ALTER DATABASE:
ALTER DATABASE [aaa] MODIFY FILE ( NAME = N'aaa', MAXSIZE = 102400KB )
GO
ALTER DATABASE [aaa] MODIFY FILE ( NAME = N'aaa_log', FILEGROWTH = 10240KB )
GO
这至少需要ALTER DATABASE权限
(由ALTER ANY DATABASE Server权限表示)。
显然,您可以使用第一个代码示例(FROM sys.master_files)生成该脚本。
我不会为SQL Server 2008R2使用sysaltfile,因为它已弃用。
祝你好运,
投资回报率
CREATE DATABASE
为什么不只在脚本中指定呢?