我試圖檢索StoredProcedure中所有參數的DefaultValue。我的應用程序使用C#.NET構建,訪問Microsoft SQL 2008數據庫。如何更有效地檢索SQL存儲過程參數與SMO?
我使用SqlCommandBuilder.DeriveParameters獲取大部分參數信息,但是它不會返回參數的「DefaultValue」,所以我使用SMO來獲取該特定屬性。
這裏是我當前的代碼:
Server svr = new Server(new ServerConnection(new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString)));
StoredProcedure sp = svr.Databases["MyDatabase"].StoredProcedures["mySproc", "myScheme"];
svr.SetDefaultInitFields(typeof(StoredProcedureParameter), "Name");
svr.SetDefaultInitFields(typeof(StoredProcedureParameter), "DefaultValue");
Dictionary<string, string> defaultValueLookup = new Dictionary<string, string>();
foreach (StoredProcedureParameter parameter in sp.Parameters)
{
string defaultValue = parameter.DefaultValue;
string parameterName = parameter.Name;
defaultValueLookup.Add(parameterName, defaultValue);
}
然而,這是即使我加入了svr.SetDefaultInitFields優化(這並作出顯著改善〜10倍的改善)非常緩慢。
有沒有人有進一步的優化思路?
只要注意任何其他可憐的靈魂誰發現自己這樣做,函數可以在這裏找到:StoredProcedure sp = svr.Databases [「MyDatabase」]。UserDefinedFunctions – tbone 2015-08-20 22:42:34