Основное различие между этими тремя аспектами - это срок службы и область применения.
Под глобальной таблицей я предполагаю, что вы имеете в виду стандартный прогон таблицы фрезерования.Таблицы используются для хранения постоянных данных.Они доступны всем зарегистрированным пользователям.Любые сделанные вами изменения видны другим пользователям и наоборот.
Временная таблица существует исключительно для хранения данных в течение сеанса.Лучшее время для использования временных таблиц - это когда вам нужно хранить информацию на сервере SQL для использования в нескольких транзакциях SQL.Как обычная таблица, вы создадите ее, будете взаимодействовать с ней (вставлять / обновлять / удалять), а когда вы закончите, вы ее отбросите.Есть два различия между таблицей и временной таблицей.
- Временная таблица видна только вам.Даже если кто-то создаст временную таблицу с тем же именем, никто не сможет увидеть или повлиять на вашу временную таблицу.
- Временная таблица существует до тех пор, пока вы вошли в систему, если вы явно не удалите ее.Это.Если вы выйдете из системы или отключитесь, SQL Server автоматически очистит его для вас.Это также означает, что данные не являются постоянными.Если вы создаете временную таблицу в одном сеансе и выходите из системы, ее не будет при повторном входе в систему.
Переменная таблицы работает как любая переменная в SQL Server.Это используется для хранения данных для использования в одной транзакции.Это относительно новая функция TSQL и обычно используется для передачи данных между процедурами, например, для передачи массива.Существует три различия между таблицей и табличной переменной.
- Как временная таблица, она видна только вам.
- Поскольку это переменная, ее можно передавать вокругмежду хранимыми процедурами.
- Временная таблица существует только в текущей транзакции.Как только SQL Server завершает транзакцию (с помощью операторов GO или END TRANSACTION) или выходит из области видимости, он будет освобожден.
Лично я по нескольким причинам избегаю использования временных таблиц и табличных переменных.,Во-первых, синтаксис для них специфичен для Microsoft.Если ваша программа будет взаимодействовать с несколькими СУБД, не используйте их.Кроме того, временные таблицы и табличные переменные имеют тенденцию увеличивать сложность некоторых запросов SQL.Если ваш код может быть выполнен с использованием более простого метода, я бы порекомендовал использовать простой.