创建数据库::错误

时间:2009-09-09 04:39:40

标签: sql sql-server tsql

尝试按如下方式创建数据库:

    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

获取以下错误:

  

Msg 5105,Level 16,State 2,Line 3 A   发生文件激活错误。该   物理文件名   'QmastorAuditData.mdf'   可能不正确。诊断并纠正   其他错误,然后重试   操作。 Msg 1802,Level 16,State   1,第3行CREATE DATABASE失败。一些   列出的文件名不能   创建。检查相关错误。

请提供任何线索。

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

您必须添加名称的路径。

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%)

再见。

答案 2 :(得分:0)

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%)

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

首先创建数据库,然后通过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

此脚本更具可移植性,无需任何修改即可部署在多台服务器中。