我想在c#中以編程方式更改存儲過程中的參數。我遇到了SMO,並一直試圖使用它,但改變仍然失敗。這裏是我的代碼:SMO存儲過程變更失敗
//alter parameter data type in stored procedure if parameter is not varchar
public static void AlterSPParamInfo (string SPName,string parameterName,string connectionStringName)
{
SqlConnection vSqlConnection = CreateSqlConnectionStr(connectionStringName);
using(vSqlConnection)
{
ServerConnection vConnection = new ServerConnection(vSqlConnection);
Server vServer = new Server(vConnection);
Database vDatabase = vServer.Databases["HrSys"];
var vTables = vDatabase.Tables;
StoredProcedure sp = vDatabase.StoredProcedures[SPName];
if(sp != null)
{
StoredProcedureParameter spParameter = sp.Parameters[parameterName];
if(spParameter!=null)
{
if(!spParameter.DataType.Equals(DataType.VarChar(50)))
{
spParameter.DataType = DataType.VarChar(50);
sp.QuotedIdentifierStatus = true;
try
{
sp.Refresh();
sp.Alter();
}
catch(SqlServerManagementException ex)
{
//other code
}
}
}
}
我在這裏錯過了什麼?還是我不能以這種方式更改存儲過程的參數?我曾嘗試在Google或MSDN上找到更多信息,但無法找到任何解決方案...
會發生什麼情況?你有錯誤嗎?如果是這樣:請讓我們知道什麼**完全**錯誤是!我們不能讀取您的屏幕,也不能讀取您的想法.... – 2013-03-05 09:56:38
是的,我收到了一個錯誤,就像我剛纔提到的那樣。更改失敗。參數的數據類型不會更改。 – coffeeak 2013-03-05 09:58:23
您可以**請**給我們**確切和完整的**錯誤信息? – 2013-03-05 10:29:07