2010-07-18 4 views
3

В SQL Server 2005 (2008 не проверено), вы не можете создать функцию, как временный #function_name, но вы можете создать functoin называется function_name непосредственно в Tempdb. Создает ли функция таким образом временную функцию? В чем разница между таблицей #table_name и той же самой именованной таблицей, непосредственно созданной в tempdb?Создайте таблицу под названием #test и создайте таблицу под названием test in tempdb, какая разница?

+0

Не делайте этого. Только не надо. Я не могу процитировать главу и стих в BOL, говоря, что это плохо, или дать конкретную причину или тематическое исследование (вот почему это комментарий, а не ответ), но все, что имеет место в моем значительном SQL-сервере, говорит мне, что это спрашивает для беспокойства. –

ответ

4

Временная таблица (#test) фактически не называется #test в базе данных tempdb. Это связано с тем, что каждый пользователь системы может создать таблицу под названием #test. Если вы создаете временный объект, физический объект в базе данных tempdb (найденный, смотря на представление каталога sys.all_objects). В моем случае он был создан как «#test _______________________________________________________________________________________________________________ 000000000003». Где, если вы создаете физическую таблицу в базе данных tempdb, она называется тестом, и только одно из них может одновременно создавать объект, и если несколько пользователей помещают данные в физическую таблицу, называемую тестом, то они смогут получить доступ к другим данным , Где, когда у вас есть временные таблицы, пользователи могут получить доступ только к своим собственным данным и их собственной таблице.

3

Одно из очевидных отличий заключается в том, что он не будет автоматически отбрасываться, когда ваше соединение закончится, но за его пределами я нахожу его весьма полезным для быстрого тестирования чего-либо на моей машине разработки, и я не хочу явно убирать ее. tempdb, очевидно, воссоздается после перезапуска сервера, поэтому не следует использовать, если вы хотите какой-либо упор.

Смежные вопросы