The script as following:
:setvar DatabaseVersion "1.0001"
--:setvar DatabaseName "John"
USE Shotgun
GO
/* Update database version */
IF EXISTS(SELECT *
FROM fn_listextendedproperty(default, default, default, default, default, default, default)
WHERE name = 'DatabaseVersion')
BEGIN
EXEC sys.sp_updateextendedproperty
@name = N'DatabaseVersion',
@value = N'$(DatabaseVersion)'
END
ELSE BEGIN
EXEC sys.sp_addextendedproperty
@name = N'DatabaseVersion',
@value = N'$(DatabaseVersion)';
END
GO
If you directlly exec the code above, you will get an error like
"Msg 102, Level 15, State 1, Line 15
Incorrect syntax near ':'."
For setvar need to be executed under "SQLCMD Mode". Trun on it as following: toolbar-->Qurey--->SQLCMD Mode. (Just click it to turn on)
格式如下:
:setvar 变量名称 变量值 /* 可以不加双引号 */
用$(变量名称)去在下面的SQL代码中,调用预定义的变量即可。