Нет SQL Server не неотъемлемы указатели поддержки отчасти это связанно с тем, что структурой запросы Языки являются декларативным характером (не список команд или шагов, которые должны быть выполнены вместо этого вы описать желаемый результат) , Учитывая это, таблицы не являются сложными объектами стиля C# или Java, которые должны быть переданы от одного метода к другому, вместо этого они являются связанными данными, хранящимися в структурированном формате в базе данных, которые могут быть запрошены любым, у кого есть необходимые разрешения, так как так что на самом деле нет необходимости ссылаться на них с помощью указателя.
Существует несколько способов моделирования поведения стиля указателя. Один из методов, для которого вам уже было предоставлено несколько примеров, - просто использовать динамический SQL и передать таблицу в запрос как строковый параметр. Другой способ заключается в использовании синонимов, смотрите пример ниже:
CREATE SYNONYM [MyTableSynonym] FOR #Table1
SELECT *
FROM [MyTableSynonym]
DROP SYNONYM [MyTableSynonym]
CREATE SYNONYM [MyTableSynonym] FOR #Table2
SELECT *
FROM [MyTableSynonym]
DROP SYNONYM [MyTableSynonym]
выше метод не рекомендуется, так как теперь мы используем синонимов таким образом, там, где не предполагалось.
Вопрос в том, какие преимущества были реализованы с помощью любого метода? Количество кода для запроса двух таблиц увеличилось, сложность запросов увеличилась, вероятность ошибок в коде увеличилась, и попытки отладки запросов такого характера станут кошмаром. Даже если верный указатель, где поддерживается, я могу думать только о нескольких сценариях, где это может быть полезно.
Не уверен, что существует, но он также может зависеть от сервера БД ... Oracle? Informix? Mysql? Сервер Sql? –
MS SQL Server 2012 – MichaelXanadu
Но почему? Вы хотите, чтобы псевдоним имени таблицы или это попытка сделать таблицу ссылкой динамической? –