Any pointers on how I can programmatically get exactly the identical stored procedure source from SQL Server 2005, as when I right-click on that stored procedure in SQL Serv
I saw a article via link. There are four methods, I just did a short summary here for helping other programmers.
EXEC sp_helptext 'sp_name';
SELECT OBJECT_ID('sp_name')
SELECT OBJECT_DEFINITION( OBJECT_ID('sp_name') ) AS [Definition];
SELECT * FROM sys.sql_modules WHERE object_id = object_id('sp_name');
I agree with Mark. I set the output to text mode and then sp_HelpText 'sproc'. I have this binded to Crtl-F1 to make it easy.
To alter a stored procedure, here's the C# code:
SqlConnection con = new SqlConnection("your connection string");
con.Open();
cmd.CommandType = System.Data.CommandType.Text;
string sql = File.ReadAllText(YUOR_SP_SCRIPT_FILENAME);
cmd.CommandText = sql;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
Things to note:
GO,SET ANSI_NULLS XX,SET QUOTED_IDENTIFIER
statements from the script file. (If you don't, the SqlCommand will throw an error).