setvar - 'dbname'

时间:2015-12-10 18:25:34

标签: sql sql-server-2008-r2 ssms sqlcmd

我已经为此搜索了答案,但我能看到的只是“错误的语法附近':'”的答案,这可以通过打开SQLCMD模式轻松解决。

但是一旦我转过身就会出现另一个错误:

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

我也很好奇为什么当代码在第16行时它会说第2行(我的帖子上面有评论)

1 个答案:

答案 0 :(得分:1)

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

稍后,有一个声明

CREATE [$(DatabaseName)];

显然,在检查语法之前评估变量,因此将其转换为MyDatabaseName,

但当然应该是

CREATE DATABASE [$(DatabaseName)];

将其更改为有效。