2011-08-31 46 views
10

Tôi đang làm việc để tạo các bảng tạm thời trong máy chủ sql. Tôi đã tạo bảng tạm thời thành công nhưng khi tôi cố gắng xem dữ liệu, nó cho biết TÊN MỤC TIÊU INVALID. Có ai có thể nói cho kẻ thù biết các bảng tạm thời tồn tại trong bao lâu? Nếu tôi đăng nhập vào máy chủ sql như userid - devloper và pwd = 0999 và một số người khác cũng được đăng nhập vào máy chủ sql với cùng thông tin đăng nhập, bảng tạm thời này sẽ bị xóa? sql của tôi là như sau:Bảng tạm thời trong máy chủ sql

SELECT net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID, 
     mst_temp_equation.EQ_ID 
INTO ##NT_MASTER_TEMP_EQUATION 
FROM mst_temp_equation INNER JOIN 
    net_node_model ON mst_temp_equation.TEMP_ID = net_node_model.TEMP_ID 
GROUP BY net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID, 
     mst_temp_equation.EQ_ID, mst_temp_equation.EQ_NAME, 
     mst_temp_equation.EQ_TYPE, mst_temp_equation.[OBJECT], 
     mst_temp_equation.VAR_TYPE, mst_temp_equation.VAR_NAME, 
     mst_temp_equation.VAR_SUBSET, mst_temp_equation.VAR_SET, 
     mst_temp_equation.RHS_RELN, mst_temp_equation.RHS_OBJECT, 
     mst_temp_equation.RHS_VAR_SET, mst_temp_equation.RHS_VAR_SUBSET, 
     mst_temp_equation.RHS_VAR_TYPE, mst_temp_equation.RHS_VAR_NAME, 
     mst_temp_equation.EQ_TP_OFFSET, mst_temp_equation.RHS_TP_OFFSET, 
     mst_temp_equation.RETAIN, mst_temp_equation.TIME_PRD, 
     mst_temp_equation.EQ_VAR_SUBTYPE, mst_temp_equation.RHS_VAR_SUBTYE; 
+1

Bạn có thể đăng SQL mà bạn đang sử dụng không? –

Trả lời

17

Nếu bạn đang sử dụng một bảng tạm thời thường xuyên #table, nó sẽ không được hiển thị cho bất kỳ phiên khác ngoài một trong những nó được tạo ra về. Khi phiên đó kết thúc, bảng sẽ bị xóa.

Nếu bạn đang sử dụng bảng tạm thời toàn cầu ##table, nó sẽ được hiển thị cho các phiên khác.

Từ MSDN - CREATE TABLE, dưới temporary tables:

bảng tạm thời toàn cầu sẽ tự động giảm khi phiên đã tạo ra bảng kết thúc và tất cả các nhiệm vụ khác đã ngừng tham khảo chúng.

+0

Tôi không chắc liệu mình có sử dụng # hay ## nếu tôi cố gắng chọn bản ghi từ bảng tem của mình bằng truy vấn chọn nó nói INVALID OBJECT NAME – CPDS

+0

@ us111 - nếu phiên nó được tạo xong và bảng không được tham chiếu bởi bất kỳ tác vụ đang chạy nào khác, nó sẽ tự động bị xóa. – Oded

+0

Tôi chưa đóng phiên ... Tôi đang thực hiện một số thử nghiệm vì vậy đầu tiên tôi chạy thủ tục lưu sẵn 1 để tạo bảng tạm thời1 và sau đó ngay lập tức tôi thử thực hiện truy vấn chọn để xem bản ghi có tên INVALID OBJECT NAME. – CPDS

0

Bạn đang nói rằng bạn đã tạo bảng ## NT_MASTER_TEMP_EQUATION và hiện đang cố gắng chèn vào nó? Nếu vậy, hãy sử dụng cú pháp INSERT INTO ##NT_MASTER_TEMP_EQUATION SELECT ... thay vì cú pháp bạn có.

SELECT ... INTO ##temp FROM ... được sử dụng để tạo cả bảng VÀ điền vào bảng.


Ngoài ra, bạn có một rogue , vào cuối danh sách SELECT của bạn (ngay trước khi từ khóa INTO). Điều này cần được loại bỏ.

+0

',' là lỗi đánh máy ... không có trong truy vấn thực tế. Có Tôi đang tạo và chèn các bản ghi trong bảng. – CPDS

0

Nếu đây là truy vấn chính xác mà bạn sử dụng, sau đó tôi nghĩ rằng bạn có thể có một lỗi cú pháp trên dòng đầu tiên, có vẻ như có một dấu phẩy thêm ngay trước khi từ khóa INTO

...mst_temp_equation.EQ_ID, INTO ##NT_MASTER_TEMP_EQUATION 
         ^

Không chắc nếu điều này đang gây ra lỗi MÃ TÙY CHỌN HOẶC KHÔNG phải là

+0

xin lỗi có lỗi đánh máy không có ',' sau EQ_ID – CPDS

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