Проект базы данных Visual Studio — Используйте переменную SQLCMD для определения размера файла

#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, поскольку проект не создается, поэтому он не создает сценарий публикации.