Ошибка создания базы данных из запроса - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь создать базу данных из отправленного мне SQL-запроса. Следует отметить, что SQL не является моей сильной стороной.

В начале запроса объявляется следующее:

:setvar DatabaseName "Database"
:setvar DefaultDataPath ""
:setvar DefaultLogPath ""

Я запустил запрос в командном режиме и получаю следующую ошибку:

Создание базы данных ...
Сообщение 5105, уровень 16, состояние 2, строка 1
Произошла ошибка активации файла. Физическое имя файла 'DB.mdf' может быть неправильным. Диагностируйте и исправьте дополнительные ошибки и повторите операцию.

Сообщение 1802, Уровень 16, Состояние 1, Строка 1
СОЗДАТЬ БАЗУ ДАННЫХ не удалось. Некоторые имена файлов не могут быть созданы. Проверьте связанные ошибки.
Произошла ошибка во время выполнения пакета. Выход.

Есть идеи?

Спасибо

Невозможно опубликовать полный запрос, так как он очень длинный и содержит конфиденциальную информацию, но урезанная версия до точки, которая может вызвать ошибку.

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;

1 Ответ

2 голосов
/ 12 марта 2012

укажите физический путь в следующей строке:

:setvar DefaultDataPath ""

like;

:setvar DefaultDataPath "D:\Database"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...