SQL Server 2005 book online says: The primary data file is the starting point of the database and points to the other files in the database. Every database has one primary data file. The recommended file name extension for primary data files is .mdf. 这是不是说:primary data file的extension可以是其它类型呢,如果可以的话,对文件内的数据格式应该也有要求吧!请教高手答疑!!
这个问题第1个回答:
每个数据库至少有两个文件,一个主文件和一个事务日志文件。
尽管 'os_file_name' 可以是任何有效的操作系统文件名,但如果使用以下建议的扩展名,则可以更加清楚地反映文件的用途。
文件类型 文件扩展名
主要数据文件 .mdf
次要数据文件 .ndf
事务日志文件 .ldf
就是说,可以是其它的扩展名,但建议使用mdf,更清楚。
就像一个xml文件,你存为扩展名为txt,读取时照样用dom可操作,但是存为xml更明确。
这个问题第2个回答:
引用 1 楼 fcuandy 的回复: 每个数据库至少有两个文件,一个主文件和一个事务日志文件。 尽管 'os_file_name' 可以是任何有效的操作系统文件名,但如果使用以下建议的扩展名,则可以更加清楚地反映文件的用途。 文件类型 文件扩展名 主要数据文件 .mdf 次要数据文件 .ndf 事务日志文件 .ldf 就是说,可以是其它的扩展名,但建议使用mdf,更清楚。 就像一个xml文件,你存为扩展名为txt,读取时照样用dom可操作,但是存为xml更明确。 深表赞同
这个问题第3个回答:
我想测试下可以为其它扩展名,试图将一个文本文件 附加到SQL Server作为数据文件,但提示:
无法为此请求检索数据.(Microsoft.SqlServer.Express.SmoEnum)
Additional information:
执行Transact-SQL语句或批处理时发生了异常.(Microsoft.Sqlserver.Express.ConnectionInfo)
[文件名]不是主数据库文件.(Microsoft.SQL.Server,Error:5171)
然后,我将一个primary data file与transaction log file 分离出来后,试图更改它们的extension后,看能否再附加到Server,但extension改不了.那我怎么验证primary data file和transaction log file的扩展名可以是任意了呢?
这个问题第4个回答:
如何不行呢?
企业管理器手工操作.
新建库,输入库名test,切到数据文件选项卡,选中主文件,按浏览(也就是...的按钮),我输入 test_data.xxx.
建完库后打开data目录,出现 test_data.xxx,test_log.ldf.
如果用语句
SQL code
CREATE DATABASE test
ON
PRIMARY ( NAME = xxx,
FILENAME = 'd:\program files\microsoft sql server\mssql\data\test_data.xxx',--这里自己手工指定主文件名就可以了。
--...其它选项参数
这个问题第5个回答:
引用 3 楼 Jason_Steven 的回复: 我想测试下可以为其它扩展名,试图将一个文本文件 附加到SQL Server作为数据文件,但提示: 无法为此请求检索数据.(Microsoft.SqlServer.Express.SmoEnum) Additional information: 执行Transact-SQL语句或批处理时发生了异常.(Microsoft.Sqlserver.Express.ConnectionInfo) [文件名]不是主数据库文件.(Microsoft.SQL.Server,Error:5171) 然后,我将一个primary data file与transaction log file 分离出来后,试图更… 你随手把一个txt附加到sqlserver,当然不行了。就好像,我打了abcd存为x.txt,然后用xmldom操作它一样。它本身的数据就不是数据文件。
对于已存在的主数据文件mdf,先将库脱机,再改扩展名,然后附加,是可以的。
这个问题第6个回答:
引用 4 楼 fcuandy 的回复: 如何不行呢? 企业管理器手工操作. 新建库,输入库名test,切到数据文件选项卡,选中主文件,按浏览(也就是...的按钮),我输入 test_data.xxx. 建完库后打开data目录,出现 test_data.xxx,test_log.ldf. 如果用语句 SQL codeCREATE DATABASE test ON PRIMARY ( NAME = xxx, FILENAME = 'd:\program files\microsoft sql server\mssql\data\test_data.xxx',--这里自己手工指定主文件名就可以了。 … 你输入的test_data.xxx,其中.xxx还是物理文件名的一部分,extension还是.mdf;这你可以在"数据库属性"的"文件"中看到,你也可以在data目录中看到,
欢迎讨论!
另外请教下,怎么样改数据库文件的扩展名啊,好像直接改不了啊!请说明下详细操作过程!