我正在使用用戶定義的表類型傳入我的存儲過程。 我不得不原因更改表類型添加一個額外的列,現在我得到的錯誤:鍵入表的SQL錯誤
The parameter "@MyParam" is not the same type as the type it was created with. Drop and recreate the module using a two-part name for the type, or use sp_refreshsqlmodule to refresh its parameters metadata.
呼籲從我的.NET代碼PROC時。 我加入參數值的方式,以我的命令,像這樣:
var param = _command.Parameters.AddWithValue("@MyParam" , myTypedDataTable)
param.SqlDbType = SqlDbType.Structured;
其中myTypedDataTable
已更新爲包含新列。
我已經嘗試刪除並重新創建被調用的存儲過程,以及刪除和重新創建用戶定義表。我沒有(感謝谷歌)試圖在我的存儲過程和用戶定義表上使用sys.sp_refreshsqlmodule
(它沒有工作,但在用戶定義表上,給我的錯誤:「找不到對象」[myUserDefinedTable ]',或者你沒有權限。「,我beleieve這可能是由於sys.sp_refreshsqlmodule
無法在用戶定義的表上工作?)
我想我可能在這裏缺少一些基本的東西,但看不到什麼?
對不起@Andomar,我應該提到我已經這麼做了。謝謝 – Ben 2011-12-29 22:59:18
好吧!你可以發佈'myTypedDataTable'的定義,以及它在SQL中定義的方式嗎? – Andomar 2011-12-29 23:02:02