我嘗試使用下面的查詢檢索存儲過程的列定義存儲過程的結果集列定義:檢索對於使用臨時表
exec sp_describe_first_result_set @tsql = N'EXEC @return_value = [dbo].[foo]
@DATABASENAME = dbname,
@TABLENAME = tblname,
@DATEFROM = N''20170101'',
@DATETO = N''20170201'''
我也得到如下回應:
消息11526,級別16,狀態1,過程sp_describe_first_result_set,行1
元數據無法確定,因爲語句'INSERT INTO #Tables(CubeSchema,TableName,DateFilterColumn,SelectColumns)SELECT'Col1','Col2'in procedure' foo'使用te mp表
是否有解決此問題的方法?
編輯:我沒有權利查看和/或更改存儲過程,所以不幸的是這種解決方案不起作用。
當你剛剛運行你的存儲過程時是否返回了一個結果集?所有列的名稱是否正確?你的程序在做什麼?如果它只是讀取數據,您可能會認爲將其更改爲內聯表值函數。我儘量避免SP,除非我想讓**做** ... – Shnugo
sp返回一個始終相同(不是條件)的結果集,並且所有列都被正確命名。存儲過程由客戶端創建,爲我提供一些數據,因爲我不允許直接查詢他們的表。他們沒有提供關於列數據類型的文檔,我想看看他們。情況就是如此。 – rpd
[在本文中討論了同樣的問題(使用工作示例!)](https://raresql.com/2014/01/10/sql-server-2012-fix-error-11526-the-metadata-could -not待確定 - 因爲語句-LS-在-過程-LS-用途-A-TEMP-表/)。如果你不能更改SP代碼 - 按照這一點 - 幾乎沒有燈... – Shnugo