2015-12-10 69 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)]; 

將其更改爲此工作。