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代碼中,調用預定義的變量即可。