#sql-server #visual-studio #database-project
#sql-server #visual-studio #база данных-проект
Вопрос:
Кто-нибудь знает, возможно ли использовать переменные SQLCMD для определения размера? Я пытаюсь с этим:
ALTER DATABASE [$(DatabaseName)]
ADD FILE (
NAME = [MyFile_1],
FILENAME = N'$(DefaultDataPath)$(DefaultFilePrefix)_MyFile_1.ndf',
SIZE = $(FileSize) MB,
FILEGROWTH = $(FileGrowth) MB )
TO FILEGROUP [MyFileGroup];
Но при попытке создать решение появляются следующие ошибки:
SQL80001: Incorrect syntax near '$'. Expecting ID, INTEGER, QUOTED_ID, STRING, or TEXT_LEX.
SQL46010: Incorrect syntax near $(FileSize).
SQL80001: Incorrect syntax near 'FileSize'.
SQL80001: Incorrect syntax near 'FileGrowth'. Expecting '(', or SELECT.
Переменные определяются в конфигурации проекта.
Ответ №1:
У меня все работало нормально. Похоже, вам не хватает закрывающей кавычки после имени файла. То есть у вас есть
FILENAME = N'$(DefaultDataPath)$(DefaultFilePrefix)_MyFile_1.ndf,
но должен иметь
FILENAME = N'$(DefaultDataPath)$(DefaultFilePrefix)_MyFile_1.ndf',
Кроме того, вы убедились, что в верхней части вашего сценария публикации есть setvar, например
:setvar FileSize "1024"
:setvar FileSize "10"
Удачи!
Комментарии:
1. Спасибо, это была опечатка, когда я изменил имя файла (это было длинное и бесполезное имя), но исходный код в порядке. Я не могу проверить предложения SETVAR, поскольку проект не создается, поэтому он не создает сценарий публикации.