2009-11-06 3 views

Odpowiedz

15
select * into #temp_table from current_table_in_stored_procedure 

#temp_table - locally temp 
##temp_table - globally temp 

select top 0 * into #temp_table from current_table_in_stored_procedure to have empty table 
+0

to skopiuje dane z current_table w #temp_table, ale #temp_table nie będzie miał takie same klucze, ustawienia tożsamości itp Jednak jest to akceptowany sposób wykonania tego zadania. –

+0

@David: tabela temp * będzie * dziedziczy ustawienia tożsamości, ale nie, żaden z kluczy ani indeksowanie. Chciałbym móc to wyłączyć! –

7

SELECT * INTO #t FROM table

jeśli ma to być puste:

SELECT * INTO #t FROM table WHERE 1 = 2

1

Alternatywnie można skrypt istniejącej tabeli i zmienić nazwę na temp nazwa tabeli i dodaj tworzenie tabeli s cript na początek pozostałej części skryptu, który chcesz uruchomić. Zwykle robię to, jeśli naprawdę ważne jest to, że tabela tymczasowa dokładnie pasuje do struktury rzeczywistego stołu (na przykład kiedy tworzę fałszywą tabelę o nazwie # niewypełnioną do użycia podczas testowania kodu, który zamierzam umieścić w wyzwalaczu).

W większości przypadków opcja wyboru dostarczy Ci tego, czego potrzebujesz.

0

Wspólna ekspresyjne Tabela lub Tabela Zmienne mogą również serwer celem oprócz tabeli temp