create database mynewdb
on primary
(NAME=mynewdb,filename='c:\mysqldata\mynewdb.mdf',size=10mb,maxsize=2GB,filegrowth=20)
log on
(name=mynewdblog,filename='c:\mysqldata\mynewdblog.ldf',size=5mb,maxsize=1gb,filegrowth=10%)当C盘不存在mysqldata文件夹时,会报错。怎么使得如果不存在,则自动创建,如果存在,直接写入就好了。

解决方案 »

  1.   

    --创建数据库时指定数据文件
    create database db
    on
    primary(name=db,
            filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db.mdf',
            size=100MB
            maxsize=200
            filegrowth=20)
    go
    --解释下上面的参数:
       
    --primary关键字,指定关联<文件定义>列表用于定义主要数据文件,一个数据库只能有一个主文件,如果没有指定primary,那么create database 语句中列出的第一个文件将成为主文件。--name关键字,用于指定数据文件的逻辑名称--filename关键字,指定数据文件的操作系统文件名。其后面的参数是创建数据文件时定义的物理文件的路径名和文件名。--size关键字,指定数据文件的大小。--maxsize关键字,指定数据文件可以增长到的最大大小。--unlimitted关键字,上面的例子中省略掉了。若指定了,则代表指定定义的数据文件将增长到磁盘变满为止。--filegrowth关键字,指定数据文件的增长增量,其值不能超过maxsize设置。0表示不增长。,默认值为MB。如果指定为%,则增量大小为发生时文件大小的指定百分比,如果没有指定,默认值为10%。--在创建数据库时指定文件组
    create database db
    on
    primary(name=db1,
            filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db1.mdf',
            size=100MB
            maxsize=200
            filegrowth=20),
    filegroup filegroup1
    (name=db2,
            filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db2.mdf',
            size=100MB
            maxsize=200
            filegrowth=20)
    go--创建数据库时指定事务日志文件create database db
    on
    primary(name=db1,
            filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db1.mdf',
            size=100MB
            maxsize=200
            filegrowth=20),
    log on(
      name=dblog,
            filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db_log.ldf',
            size=10MB
            maxsize=20
            filegrowth=2)
    go
      

  2.   

    小F姐姐,当 filename='C:\program files\mircosoft SQL server\mssql10.mssqlserver\mssql\data\db.mdf 这个路径不存在能运行成功吗?
      

  3.   

    路径不存在将不能创建数据库,会给出路径错误的提示
    用xp_cmdshell建一个就可以了,就算文件夹已经存在,也不会返回错误的信息中断下面的创建数据库语句
    exec xp_cmdshell 'md c:\mysqldata',no_output
    go
    create database mynewdb
    on primary
    (NAME=mynewdb,filename='c:\mysqldata\mynewdb.mdf',size=10mb,maxsize=2GB,filegrowth=20)
    log on
    (name=mynewdblog,filename='c:\mysqldata\mynewdblog.ldf',size=5mb,maxsize=1gb,filegrowth=10%)