Я написал этот код T-SQL, который я запускал в режиме SQLCMD в SSMS:
:setvar ENV "Table1"
DECLARE @DomainPrefix NVARCHAR(50) = N'$(ENV)';
IF(@DomainPrefix = N'Table1')
BEGIN
SET @DomainPrefix = 'Table2';
END;
:setvar Prefix @DomainPrefix
PRINT $(Prefix)
SELECT * FROM [DATA].[mySchema].[$(Prefix)]
Ниже приведены следующие данные:
Table2 Msg 208, уровень16, состояние 1, строка 12 Неверное имя объекта 'DATA.mySchema. @ DomainPrefix'.
Я не понимаю, почему он не заменяет $ (DomainPrefix) значением 'Table2', которое ямогу печатать на предыдущей строке.