Visual Studio 数据库项目 - 使用 SQLCMD 变量定义文件大小

Posted

技术标签:

【中文标题】Visual Studio 数据库项目 - 使用 SQLCMD 变量定义文件大小【英文标题】:Visual Studio Database Project - Use SQLCMD variable to define File size 【发布时间】:2019-03-14 19:46:08 【问题描述】:

有人知道是否可以使用 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"

祝你好运!

【讨论】:

谢谢,当我更改文件名时这是一个错字(这是一个长而无用的名称),但原始代码是可以的。我无法验证 SETVAR 的语句,因为项目没有构建,所以它没有创建发布脚本。

以上是关于Visual Studio 数据库项目 - 使用 SQLCMD 变量定义文件大小的主要内容,如果未能解决你的问题,请参考以下文章

使用Visual Studio2013打开Visual Studio2015项目

使用 Visual Studio 数据库项目的 PostDeployment 脚本插入图像

Visual Studio数据库项目使用链接服务器数据库引用

Visual Studio 数据库项目 - 使用 SQLCMD 变量定义文件大小

有人在 Visual Studio 中使用“数据库项目”吗?

使用链接服务器数据库参考的 Visual Studio 数据库项目