我正在尝试从我发送的SQL查询创建数据库。应该指出SQL不是我的强项。
在查询开始时声明以下内容:
:setvar DatabaseName "Database"
:setvar DefaultDataPath ""
:setvar DefaultLogPath ""
我在命令模式下运行查询并收到以下错误:
创建数据库...
Msg 5105,Level 16,State 2,Line 1
发生文件激活错误。物理文件名“DB.mdf”可能不正确。诊断并更正其他错误,然后重试该操作。Msg 1802,Level 16,State 1,Line 1
CREATE DATABASE失败。无法创建列出的某些文件名。检查相关错误 执行批处理时遇到错误。离开。
有什么想法吗?
由于
无法发布完整查询,因为它很长并且包含敏感信息,但会将版本减少到可能导致错误的位置。
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO
:setvar DatabaseName "Database"
:setvar DefaultDataPath ""
:setvar DefaultLogPath ""
GO
:on error exit
GO
USE [master]
GO
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL
AND DATABASEPROPERTYEX(N'$(DatabaseName)','Status') <> N'ONLINE')
BEGIN
RAISERROR(N'The state of the target database, %s, is not set to ONLINE. To deploy to this database, its state must be set to ONLINE.', 16, 127,N'$(DatabaseName)') WITH NOWAIT
RETURN
END
GO
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
BEGIN
ALTER DATABASE [$(DatabaseName)]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [$(DatabaseName)];
END
GO
PRINT N'Creating $(DatabaseName)...'
GO
CREATE DATABASE [$(DatabaseName)]
ON
PRIMARY(NAME = [DB], FILENAME = '$(DefaultDataPath)DB.mdf', SIZE = 3072 KB, FILEGROWTH = 1024 KB)
LOG ON (NAME = [DB_log], FILENAME = '$(DefaultLogPath)DB_log.ldf', SIZE = 1024 KB, MAXSIZE = 2097152 MB, FILEGROWTH = 10 %) COLLATE SQL_Latin1_General_CP1_CI_AS
GO
EXECUTE sp_dbcmptlevel [$(DatabaseName)], 100;
答案 0 :(得分:2)
在以下行中添加一些物理路径:
:setvar DefaultDataPath ""
等;
:setvar DefaultDataPath "D:\Database"