Czy konieczne jest użycie #
przed utworzeniem tabeli tymczasowej na serwerze SQL?
Przykład:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Czy w przypadku ItemBack1 konieczne jest użycie #
symbolu?
Jeśli nie, to jaki jest pożytek z #
tworzenia tabel tymczasowych?
Odpowiedzi:
Tak. Aby utworzyć tabele tymczasowe, musisz poprzedzić nazwę tabeli znakiem „#” (hash).
Jeśli NIE potrzebujesz tej tabeli później, możesz ją utworzyć. Tabele tymczasowe są bardzo podobne do zwykłych tabel. Jednak zostanie utworzony w tempdb. Jest również dostępny tylko przez bieżącą sesję, np. Dla EG: jeśli inny użytkownik spróbuje uzyskać dostęp do utworzonej przez Ciebie tabeli tymczasowej, nie będzie mógł tego zrobić.
„##” (podwójny hash tworzy „Globalną” tabelę tymczasową, do której można uzyskać dostęp również z innych sesji.
Skorzystaj z poniższego łącza, aby uzyskać informacje o podstawach tabel tymczasowych: http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Jeśli zawartość Twojej tabeli jest mniejsza niż 5000 wierszy i NIE zawiera typów danych, takich jak nvarchar (MAX), varbinary (MAX), rozważ użycie zmiennych tabeli.
Są najszybsze, ponieważ są takie same jak wszystkie inne zmienne przechowywane w pamięci RAM.Są również przechowywane w tempdb, a nie w pamięci RAM .DECLARE @ItemBack1 TABLE ( column1 int, column2 int, someInt int, someVarChar nvarchar(50) ); INSERT INTO @ItemBack1 SELECT column1, column2, someInt, someVarChar FROM table2 WHERE table2.ID = 7;
Więcej informacji o zmiennych tabeli: http://odetocode.com/articles/365.aspx
źródło
Różnica między dwiema tabelami
ItemBack1
i#ItemBack1
jest to, że najpierw na to trwałe (stałe), gdzie jako druga ma charakter tymczasowy.A teraz spójrz ponownie na swoje pytanie
Odpowiedź brzmi: tak , ponieważ bez tego poprzedzającego
#
tabela nie będzie tabelą tymczasową, będzie niezależna od wszystkich sesji i zakresów.źródło