Я пытаюсь создать базу данных из отправленного мне 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;