9

Tôi đang cố gắng thêm một tableadapter vào một thủ tục được lưu trữ trong SQL Server 2005 Express của tôi. Tuy nhiên, thủ tục đã lưu trữ sử dụng một bảng tạm thời được gọi là #temp. Khi tạo bộ điều hợp bảng, Visual Studio than phiền "Unknown Object '#temp'" và nói rằng thủ tục được lưu trữ trả về 0 cột. Đây là vấn đề bởi vì tôi sử dụng thủ tục được lưu trữ đó với một báo cáo tinh thể và cần những cột đó.Tại sao tập dữ liệu đã nhập của tôi không giống bảng tạm thời?

Làm cách nào để khắc phục sự cố này?

Trả lời

30

Kỳ lạ. Theo số this bạn thêm

IF 1=0 BEGIN 
    SET FMTONLY OFF 
END 

vào SP ngay sau phần AS của SP và hoạt động. Visual Studio bây giờ không có vấn đề với nó. Tôi không có ý tưởng tại sao điều này hoạt động như thế này, hoặc tại sao nó sẽ làm việc, nhưng nó có.

+2

Ai đó có thể có một ngày có lông xấu. Nó đã giúp đỡ tôi. +1 –

+0

tất cả những gì tôi có thể nói là ... wow. những công việc này. Đây là một vấn đề lớn đối với tôi. Tôi sử dụng bảng tạm thời cần phải là duy nhất cho mỗi trường hợp của một báo cáo được chạy. Không thể có bảng bị ghi đè từ một máy trạm khác. Tôi cần các bảng tạm thời để làm việc với thủ tục được lưu trữ của tôi. Cảm ơn. –

1

Đây có thể là một chủ đề cũ và câu trả lời được tìm thấy, nhưng khi ai đó vào quy trình được lưu trữ của bạn sau và xem mã này, anh ấy thực sự không hiểu. Có một cách khác để thực hiện việc này đúng cách và đơn giản là khai báo bảng dưới dạng biến như sau:

DECLARE @temp TABLE 
(
    SomeText1 nvarchar(255), 
    SomeText2 nvarchar(255) 
) 

Ngoài ra, đừng quên tháo BẢNG ở cuối.

PS: Nếu bạn thực sự cần sử dụng bảng tạm thời vì bạn cần tạo bảng, thì bạn phải viết mã được đưa ra trong câu trả lời trước đó. Hi vọng điêu nay co ich.

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