CREATE DATABASE stuDB
ON primary   --默认就属于PRIMARY主要文件组,可省略
(
/*--数据文件的具体描述--*/
NAME='stuDB_data',   --主数据文件的逻辑名称   
FILENAME='D:\project\stuDB_data.mdf',   --主数据文件的物理名称
SIZE=5mb,   --主数据文件的初始大小
MAXSIZE=100mb,   --主数据文件增长的最大值
FILEGROWTH=15%   --主数据文件的增长率
)
LOG ON
(
/*--日志文件的具体描述,各参数含义同上--*/
NAME='stuDB_log'
FILENAME='D:\project\stuDB_log.ldf',
SIZE=2mb,
FILEGROWTH=1mb
)
GO   --和后续的SQL语句分隔开我这样写的,执行之后消息是这样说的:
消息 153,级别 15,状态 1,第 15 行
在 CREATE/ALTER DATABASE 语句中选项 FILENAME 的用法无效。请问怎么解决?

解决方案 »

  1.   

    A. 创建指定数据文件和事务日志文件的数据库
    下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。USE master
    GO
    CREATE DATABASE Sales
    ON 
    ( NAME = Sales_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )
    GOB. 指定多个数据文件和事务日志文件创建数据库
    下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。USE master
    GO
    CREATE DATABASE Archive 
    ON
    PRIMARY ( NAME = Arch1,
          FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf',
          SIZE = 100MB,
          MAXSIZE = 200,
          FILEGROWTH = 20),
    ( NAME = Arch2,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat2.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20),
    ( NAME = Arch3,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat3.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    LOG ON 
    ( NAME = Archlog1,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog1.ldf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20),
    ( NAME = Archlog2,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\archlog2.ldf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    GOC. 创建简单的数据库
    本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 <filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。USE master
    GO
    CREATE DATABASE Products
    ON 
    ( NAME = prods_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods.mdf',
       SIZE = 4,
       MAXSIZE = 10,
       FILEGROWTH = 1 )
    GOD. 不指定文件创建数据库
    下面的示例创建名为 mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 <filespec> 项,所以主数据库文件的大小为 model 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。CREATE DATABASE mytestE. 不指定 SIZE 创建数据库
    下面的示例创建名为 products2 的数据库。文件 prods2_dat 将成为主文件,大小等于 model 数据库中主文件的大小。事务日志文件会自动创建,其大小为主文件大小的 25% 或 512 KB 中的较大值。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。USE master
    GO
    CREATE DATABASE Products2
    ON 
    ( NAME = prods2_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\prods2.mdf' )
    GOF. 使用文件组创建数据库
    下面的示例使用三个文件组创建名为 sales 的数据库: 主文件组包含文件 Spri1_dat 和 Spri2_dat。指定这些文件的 FILEGROWTH 增量为 15%。
    名为 SalesGroup1 的文件组包含文件 SGrp1Fi1 和 SGrp1Fi2。
    名为 SalesGroup2 的文件组包含文件 SGrp2Fi1 和 SGrp2Fi2。 
    CREATE DATABASE Sales
    ON PRIMARY
    ( NAME = SPri1_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri1dat.mdf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 15% ),
    ( NAME = SPri2_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SPri2dt.ndf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 15% ),
    FILEGROUP SalesGroup1
    ( NAME = SGrp1Fi1_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi1dt.ndf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 ),
    ( NAME = SGrp1Fi2_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG1Fi2dt.ndf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 ),
    FILEGROUP SalesGroup2
    ( NAME = SGrp2Fi1_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi1dt.ndf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 ),
    ( NAME = SGrp2Fi2_dat,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\SG2Fi2dt.ndf',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )
    GOG. 附加数据库
    示例 B 创建一个包含下列物理文件的名为 Archive 的数据库:c:\program files\microsoft sql server\mssql\data\archdat1.mdf
    c:\program files\microsoft sql server\mssql\data\archdat2.ndf
    c:\program files\microsoft sql server\mssql\data\archdat3.ndf
    c:\program files\microsoft sql server\mssql\data\archlog1.ldf
    c:\program files\microsoft sql server\mssql\data\archlog2.ldf可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。sp_detach_db Archive
    GO
    CREATE DATABASE Archive
    ON PRIMARY (FILENAME = 'c:\program files\microsoft sql server\mssql\data\archdat1.mdf')
    FOR ATTACH
    GOH. 使用原始分区
    下面的示例使用原始分区创建名为 Employees 的数据库。执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。USE master
    GO
    CREATE DATABASE Employees
    ON 
    ( NAME = Empl_dat,
       FILENAME = 'f:',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
       FILENAME = 'g:',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )
    GOI. 使用已装入的驱动器
    下面的示例使用指向原始分区的已装入驱动器创建名为 Employees 的数据库。此功能只在 Microsoft® Windows® 2000 Server 中才可用。.执行语句时必须已经存在已装入的驱动器和原始分区,并且每个原始分区上只能有一个文件。当在已装入的驱动器上创建数据库文件时,必须用尾随反斜线结束驱动器路径。USE master
    GO
    CREATE DATABASE Employees
    ON 
    ( NAME = Empl_dat,
       FILENAME = 'd:\sample data dir\',
       SIZE = 10,
       MAXSIZE = 50,
       FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
       FILENAME = 'd:\sample log dir\',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB )
    go
      

  2.   

    NAME='stuDB_log' 后面少了一个逗号
    应该是
    NAME='stuDB_log',