patterncsharpMinor
Daily database maintenance using SQL Server 2008 and a stored procedure
Viewed 0 times
stored2008sqlandproceduredatabasemaintenanceusingserverdaily
Problem
I have created a database maintenance plan using wizard though that link for SQL Server 2005.
I have created a Maintenance Plan for SQL Server 2008 and it works fine.
Now I required to complete the same task using a stored procedure for my desktop application.
I have tried this stored procedure for that but it doesn't works for me.
Stored Procedure Execute Successfully and also i can see the entered values in the table
Please Help...
Below is the code snippet I have tried.
I have created a Maintenance Plan for SQL Server 2008 and it works fine.
Now I required to complete the same task using a stored procedure for my desktop application.
I have tried this stored procedure for that but it doesn't works for me.
Stored Procedure Execute Successfully and also i can see the entered values in the table
sysdbmaintplans of msdb the system database but created maintenance plan doesn't shows Under tree(MANAGEMENT=>MAINTENANCE PLAN) of Object Explorer(SQL Server Management Studio). Please Help...
Below is the code snippet I have tried.
// sp_add_maintenance_plan [ @plan_name = ] 'plan_name' ,
//@plan_id = 'plan_id' OUTPUT
String planid = "";
string maintenancePlan = "MyMaintenance";
string SQLstr = "DECLARE @plan_id as Varchar(50)";
SQLstr += " EXEC sp_add_maintenance_plan ";
SQLstr += " @plan_name='" + maintenancePlan + "',";
SQLstr += " @plan_id= @plan_id OUTPUT";
SQLstr += " SELECT @plan_id";
SqlConnection cnn = new SqlConnection(MSDBconnStr);
SqlCommand cmd = new SqlCommand(SQLstr, cnn);
cnn.Open();
planid = (string)cmd.ExecuteScalar();
cnn.Close();
// sp_add_maintenance_plan_db [ @plan_id = ] 'plan_id' ,
//[ @db_name = ] 'database_name'
string maintenancePlanDataBase = "MyDataBase";
string SQLstr1 = " EXEC sp_add_maintenance_plan_db ";
SQLstr1 += " @plan_id='" + planid + "',";
SQLstr1 += " @db_name='" + maintenancePlanDataBase + "'";
SqlConnection cnn1 = new SqlConnection(MSDBconnStr);
SqlCommand cmd1 = new SqlCommand(SQLstr1, cnn1);
cnn1.Open();
cmd1.ExecuteNonQuery();
cnn1.Close();Solution
Instead of using maintenance plans, check out Ola Hallengren's free maintenance stored procedures. They're way more powerful than maintenance plans and they don't require SSMS (per your requirements) to implement. You can set them up with any T-SQL connection.
Context
StackExchange Database Administrators Q#20192, answer score: 2
Revisions (0)
No revisions yet.