2009-11-06 38 views

Trả lời

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

này sẽ sao chép dữ liệu từ current_table thành một #temp_table, nhưng #temp_table sẽ không có các phím tương tự, cài đặt bản sắc, vv Tuy nhiên, đây là cách được chấp nhận để thực hiện nhiệm vụ này. –

+0

@David: bảng tạm thời * sẽ * kế thừa cài đặt nhận dạng, nhưng không, không có khóa hoặc lập chỉ mục nào. Tôi ước tôi có thể tắt nó đi! –

7

SELECT * INTO #t FROM table

nếu bạn muốn nó được trống:

SELECT * INTO #t FROM table WHERE 1 = 2

1

Hoặc bạn có thể kịch bản bảng hiện có và thay đổi tên cho tên bảng tạm thời và thêm bảng tạo cript ở đầu phần còn lại của tập lệnh bạn muốn chạy. Tôi thường làm điều này nếu nó thực sự quan trọng bảng temp khớp chính xác với cấu trúc của bảng thực (ví dụ khi tôi tạo một bảng giả gọi là #inserted để sử dụng khi kiểm tra mã tôi dự định đưa vào trình kích hoạt.)

Hầu hết thời gian mặc dù lựa chọn sẽ giúp bạn có được những gì bạn cần.

0

Một Bảng Biểu hiện chung hoặc Bảng biến cũng có thể máy chủ mục đích ngoài một Bảng Temp

Các vấn đề liên quan