2011-01-22 27 views
17

Tôi có một quy trình lưu trữ thực sự lớn gọi các thủ tục được lưu trữ khác và áp dụng kết quả vào các bảng tạm thời.Truy vấn bảng tạm thời trong proc được lưu trữ trong khi gỡ lỗi trong SQL 2008 Management Studio

Tôi đang gỡ lỗi trong SQL 2008 Management Studio và có thể sử dụng cửa sổ xem để truy vấn tham số cục bộ nhưng làm cách nào tôi có thể truy vấn bảng tạm thời trong khi gỡ lỗi?

Nếu không thể, có cách tiếp cận khác không? Tôi đã đọc về việc sử dụng các biến bảng, thay vào đó, nó sẽ có thể truy vấn chúng? Nếu vậy làm thế nào tôi sẽ làm điều này?

+0

Ngắt http://stackoverflow.com/questions/1900857/how-to-see-the-values-of-a-table-variable-at-debug-time-in-t-sql – Schultz9999

Trả lời

11

Sử dụng bảng tạm thời toàn cầu, ví dụ với băm kép.

insert into ##temp select ... 

Trong khi gỡ lỗi, bạn có thể tạm dừng SP tại một số điểm và trong cửa sổ truy vấn khác, bảng ## có sẵn để truy vấn.

select * from ##temp 

Bảng băm đơn (#tmp) là phiên cụ thể và chỉ hiển thị trong phiên.

0

chỉ đơn giản là không thả bảng temp hoặc giao dịch gần

ví dụ

select * into #temp from myTable 

select * from #temp 
1

một giải pháp thay thế sẽ là sử dụng biến trong proc được lưu trữ của bạn cho phép gỡ lỗi khi đang di chuyển.

tôi sử dụng biến có tên @debug_out (BIT).

làm một cái gì đó như thế này

ALTER THỦ TỤC [dbo]. [Usp_someProc]

@some_Var VARCHAR (15) = 'AUTO',

@debug_Out BIT = 0

BEGIN

IF @debug_Out = 1 
     BEGIN 
      PRINT('THIS IS MY TABLE'); 
      SELECT * FROM dbo.myTable; 
     END ................ 

END

điều tuyệt vời về việc này là khi mã của bạn khởi chạy thủ tục được lưu trữ, mặc định là không hiển thị bất kỳ phần gỡ lỗi nào. khi bạn muốn gỡ lỗi, bạn chỉ cần chuyển vào biến gỡ lỗi của mình.

EXEC usp_someProc @debug_Out = 1

11

tôi đã xây dựng a procedure mà sẽ hiển thị nội dung của một bảng tạm thời từ một kết nối cơ sở dữ liệu. (không thể với các truy vấn thông thường). Lưu ý rằng nó sử dụng DBCC PAGE & theo dõi mặc định để truy cập dữ liệu để chỉ sử dụng nó cho mục đích gỡ lỗi.

+1

Công trình này tuyệt vời và nó không yêu cầu sửa đổi các thủ tục đã lưu sẵn! Nếu chỉ có tôi có thể upvote 10x! – Colin

+0

ass xấu ! :) !! –

+1

Đây là câu trả lời hay nhất, nếu bạn có toàn quyền truy cập để thêm các trình trợ giúp trợ giúp này và chạy trong db Master –

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