【问题标题】:Create Database :: ERROR创建数据库 :: 错误
【发布时间】:2009-09-09 04:39:39
【问题描述】:

尝试如下创建数据库:

    USE Master
    GO

    IF NOT EXISTS(SELECT [Name] FROM sys.databases WHERE [name] = 'QAudit')
CREATE DATABASE [QAudit] ON  PRIMARY 
( NAME = N'QAuditData', FILENAME = N'<filePath,nvarchar(300),C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\>QAuditData.mdf' , SIZE = 921600KB , FILEGROWTH = 10%)
 LOG ON 
( NAME = N'QAuditLog', FILENAME = N'<filePath,nvarchar(300),C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\>QAuditLog.ldf' , SIZE = 512000KB , FILEGROWTH = 10%)

    GO

出现以下错误:

消息 5105,第 16 级,状态 2,线 3 A 发生文件激活错误。这 物理文件名 'QmasterAuditData.mdf' 可能不正确。诊断并纠正 其他错误,然后重试 手术。消息 1802,第 16 级,状态 1、第 3 行 CREATE DATABASE 失败。一些 列出的文件名不能 创建的。检查相关错误。

请提供任何线索。

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    FILENAME 应该是完全限定的路径。我知道我在创建数据库时使用了完整的文件夹路径。

    USE [master]
    GO
    
    CREATE DATABASE [HereTis] ON  PRIMARY 
    ( 
        NAME = N'HereTis', 
        FILENAME = N'C:\DATA\HereTis.mdf' ,         --local data path
        SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB 
    )
    LOG ON 
    ( 
        NAME = N'HereTis_log', 
        FILENAME = N'C:\DATA\HereTis.ldf' ,         --local data path
        SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%
    )
    GO
    

    【讨论】:

      【解决方案2】:

      您必须在名称中添加路径。

      CREATE DATABASE [QAudit] ON PRIMARY ( NAME = N'QAuditData', FILENAME = N'c:\db_directory\QAuditData.mdf' , SIZE = 921600KB , FILEGROWTH = 10%) LOG ON ( NAME = N'QAuditLog', FILENAME = N'c:\db_directory\QAuditLog.ldf' , SIZE = 512000KB , FILEGROWTH = 10%)
      

      再见。

      【讨论】:

        【解决方案3】:

        MDF 和 LDF 文件的路径似乎有问题。

        CREATE DATABASE [QAudit] ON  PRIMARY 
        (NAME = N'QAudit_data', FILENAME = N'E:\QAudit_data.MDF', SIZE = 614400KB, MAXSIZE = 921600KB, FILEGROWTH = 10%)
        LOG ON 
        (NAME = N'QAudit_log', FILENAME = N'E:\QAudit_log.LDF', SIZE = 102400KB, MAXSIZE = 512000KB, FILEGROWTH = 10%)
        

        【讨论】:

          【解决方案4】:

          我今天早些时候遇到了同样的问题;我认为问题在于您正在尝试编写数据库副本的脚本,但找不到要在后端创建的日志文件路径。

          我的解决方案是从管理工作室 GUI 创建数据库,然后右键单击原始数据库,转到任务,生成脚本,编写所有对象脚本,完成。然后我将生成的脚本复制到新数据库上的“新查询”中。

          【讨论】:

            【解决方案5】:

            当您通过脚本创建新数据库时,最好避免硬编码文件路径。相反,您可以这样做:

            首先创建数据库,然后通过alter来改变文件属性。

            USE [master]
            GO
            
            CREATE DATABASE [DBName]
            GO
            
            ALTER DATABASE [DBName] MODIFY FILE
            ( NAME = N'DBName' , SIZE = 512MB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
            GO
            
            ALTER DATABASE [DBName] MODIFY FILE
            ( NAME = N'DBName_log' , SIZE = 256MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10%)
            GO
            

            此脚本更便携,无需任何修改即可部署在多个服务器中。

            【讨论】:

              猜你喜欢
              • 2019-01-03
              • 2014-12-29
              • 2017-02-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-01-17
              • 2011-08-27
              相关资源
              最近更新 更多