Когато създавате временна таблица в SQL Server, имате възможност да я направите локална или глобална временна таблица.
Ето кратко описание на основните разлики между локални временни таблици и глобални временни таблици.
Именуване
- Имената на локалните временни таблици започват с един знак за число (
#
). Например#MyTable
. - Локалните временни таблици също получават генериран от системата цифров суфикс, добавен към името. Това се генерира автоматично от SQL Server. Това позволява на множество сесии да създават локални временни таблици със същото име, без да причиняват конфликти в имената. Въпреки това, потребителите все още могат да правят заявки в таблицата, без да се налага да знаят наставката.
- Имената на глобалните временни таблици започват с двоен знак за число (
##
). Например##MyTable
. - Глобалните временни таблици не добавен с суфикс като с локални временни таблици.
Видимост
- Локалните временни таблици са видими само в текущата сесия.
- Глобалните временни таблици са видими за всички сесии.
Продължителност на живота
- Локалните временни таблици се отпадат автоматично в края на текущата сесия. Локална временна таблица, създадена в съхранена процедура, се отпада автоматично, когато съхранената процедура приключи. Таблицата може да бъде препращана от всякакви вложени съхранени процедури, изпълнявани от съхранената процедура, която е създала таблицата. Таблицата не може да бъде препращана от процеса, извикал съхранената процедура, създала таблицата.
- Глобалните временни таблици се отпадат автоматично, когато сесията, създала таблицата, приключи и всички други задачи спрат да ги препращат. Връзката между задача и таблица се поддържа само за живота на един T-SQL израз. Следователно, глобална временна таблица се отпада при завършване на последния израз на T-SQL, който активно препраща към таблицата, когато сесията за създаване е приключила.