我想通過Microsoft.FSharp.Data.TypeProviders.SqlDataConnection類型訪問現有的數據庫。有一些沒有提供的存儲過程(但大多數是)。F#SQL類型提供程序 - 爲什麼不提供所有存儲過程?
我想確定什麼區別不可取的程序與其他人 - 我相信自定義類型是類型提供可能失敗的原因之一,但他們似乎並沒有出現在這裏。
爲什麼其他原因可能導致我們的存儲過程不可靠?
編輯:
我已經確定了以下塊作爲一個引起unprovidability:
EXEC @intReturn = te_audit_log @action = 'I',
@user_id = @intUserId,
@table_id = 1,
@audit_action = 'A',
@data_id = @intStatus,
@session_guid = @session_guid,
@effective_date = @actual_timedate,
@employee_id = @employee_id
...我認爲這是因爲正在「執行」編輯也有路徑的存儲過程從臨時表中返回值。
只是猜測:也許那些有輸出參數的SP沒有提供。 – Petr
我現在在其中的一個分支中查看,從它創建的#temp表中執行SELECT操作。當我刪除它時,F#能夠提供存儲過程。 –
可能是因爲它無法執行[sp_describe_first_result_set](https://msdn.microsoft.com/en-us/library/ff878602.aspx)或sys.dm_exec_describe_first_result_set並返回元數據。當SP包含臨時表時,我觀察到了這一點。從文檔「sp_describe_first_result_set在下列任何情況下都會返回錯誤 - 如果語句使用臨時表」。 – lad2025