Я предпочитаю this ответ от этого вопроса Global Variables with GO
который имеет дополнительное преимущество, будучи в состоянии сделать то, что вы изначально хотели сделать, как хорошо.
Предостережение заключается в том, что вам необходимо включить режим SQLCMD (в Query-> SQLCMD) или включить его по умолчанию для всех окон запросов (Инструменты-> Параметры, а затем Результаты запроса-> По умолчанию, открыть новые запросы в SQLCMD режим)
Затем вы можете использовать следующий тип кода (полностью сорван с тем же ответа на Oscar E. Fraxedas Tormo)
--Declare the variable
:setvar MYDATABASE master
--Use the variable
USE $(MYDATABASE);
SELECT * FROM [dbo].[refresh_indexes]
GO
--Use again after a GO
SELECT * from $(MYDATABASE).[dbo].[refresh_indexes];
GO
Почему ты нужно определить имя таблицы с именем БД?Думаю, аналогичный вопрос был задан до этого. – shahkalpesh
И нет возможности квалифицировать имена таблиц с именем базы данных в такой переменной. С его предыдущим вопросом об использовании переменной с USE-выражением, я предполагаю, что ему нужно будет делать все в динамическом SQL со всей болью, которая тянется к таблице. –
Фактический скрипт объединяет 4 разные базы данных. Я прокомментировал инструкции для поиска и замены dbName1, dbName2, dbName3 и dbName4. Я просто подумал, что было бы меньше ошибок, если бы клиент просто установил четыре переменные. – NitroxDM