2015-12-10 41 views
0

我已经搜索了这个答案,但是我可以看到的答案是“接近错误的语法”的答案:'',可以通过打开SQLCMD模式轻松解决。setvar - 'dbname'附近的语法不正确

但是一旦我打开,关于我得到另一个错误:

Msg 102, Level 15, State 1, Line 2

Incorrect syntax near 'MyDatabaseName'.

...用下面的代码:

GO 
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; 

SET NUMERIC_ROUNDABORT OFF; 


GO 
:setvar DatabaseName "MyDatabaseName" 
:setvar DefaultFilePrefix "MyDatabaseName" 
:setvar DefaultDataPath "" 
:setvar DefaultLogPath "" 


GO 
:on error exit 
GO 

我也很好奇为什么它说第2行时代码是在第16行(有评论超过我在那里发布的内容)

+1

它说第2行,因为它解析代码的语法是,而不是你的文件/文本包含它。它只是将代码分成可理解的块并执行它们。 –

回答

0

好的答案结果与上面的代码无关。

后来就下来了,有

CREATE [$(DatabaseName)]; 

显然之前检查语法所以这个被翻译成MyDatabaseName变量进行评估的声明中,

但当然应该是

CREATE DATABASE [$(DatabaseName)]; 

将其更改为此工作。