2016-05-12 15 views
5

Đây là mẫu thủ tục lưu trữSQL Server: làm thế nào để có được cột cụ thể từ các thủ tục lưu trữ mà không sửa đổi

DECLARE @ReturnTable TABLE (DateTime DATETIME,  
          WrongUSSD VARCHAR(30), 
          AllMSISDN INT,  
          UniqueMSISDN INT, 
          SubscriptionActivated INT) 

SELECT * 
FROM @ReturnTable 

Modification trong thủ tục lưu trữ là không được phép, tôi chỉ cần cột cụ thể thành thủ tục này bằng cách lựa chọn công bố.

Tôi đã cố gắng này

select WrongUSSD 
FROM openrowset('MSDASQL', 'Driver={SQL SERVER}; Server=server_name;UID=user; PWD=pass;Trusted_Connection=yes;', 'EXEC [DatabaseName].[dbo].[ProcedureName] "2016-01-01","2016-04-01"') as a 

Phương pháp này không làm việc nếu là liên kết máy chủ tồn tại trong thủ tục lưu trữ

Có phương pháp nào khác ?? Xin vui lòng giúp

+0

Tại sao bạn cần nó để chỉ trả lại một cột? – shawnt00

Trả lời

1

Sử dụng bảng temp:

INSERT INTO #TempTable 
EXEC [dbo].[ProcedureName] 

SELECT WrongUSSD 
FROM #TempTable 
+0

Cảm ơn bạn đã trả lời, Có nó hoạt động nhưng vấn đề là tôi có rất nhiều thủ tục lưu trữ mà từ đó tôi phải lấy cột, phải tạo ra rất nhiều bảng tạm thời (gần 50-60 bảng tạm thời). Là thre bất kỳ phương pháp khác ?? –

+0

Tôi cũng đã có vấn đề với bảng tạm thời được chèn lồng nhau, đã có rất nhiều truy vấn chèn trong thủ tục được lưu trữ, do đó chèn lồng nhau là tạo ra các vấn đề –

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