C# でストアド プロシージャのパラメーターをプログラムで変更しようとしています。私は SMO に出会い、それを使用しようとしましたが、alter は失敗し続けます。これが私のコードです:
//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で詳細情報を見つけようとしましたが、解決策が見つかりません...