Desplegar el contenido de un Procedimiento Almacenado

22/12/2004 - 00:05 por Luiggy | Informe spam
Hola a todos...

Tengo una base en SQL Server 2000 y quiero hacer una aplicación que lea cada
Procedimiento Almacenado que se ha creado en una base de datos y me muestre
su definición.

Gracias...

Preguntas similare

Leer las respuestas

#1 pablo crosio
22/12/2004 - 04:41 | Informe spam
hola!

consulta por el sp de nombre sp_helptext en los libros en pantalla

salu2!!

pablo

"Luiggy" escribió:

Hola a todos...

Tengo una base en SQL Server 2000 y quiero hacer una aplicación que lea cada
Procedimiento Almacenado que se ha creado en una base de datos y me muestre
su definición.

Gracias...
Respuesta Responder a este mensaje
#2 Hector Bejarano
22/12/2004 - 16:57 | Informe spam
Adicionalmente, para obtener la lista de Stored Procedures que hay en la
base de datos, ejecuta esto:

select * from sysobjects where type = 'P'

y si solo quieres los que han sido creados por los usuarios agrega category
= 0

Saludos,
Hector Bejarano. MCDBA / MCAD / MCSD

"pablo crosio" wrote in message
news:

hola!

consulta por el sp de nombre sp_helptext en los libros en pantalla

salu2!!

pablo

"Luiggy" escribió:

> Hola a todos...
>
> Tengo una base en SQL Server 2000 y quiero hacer una aplicación que lea


cada
> Procedimiento Almacenado que se ha creado en una base de datos y me


muestre
> su definición.
>
> Gracias...
Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo, MVP
23/12/2004 - 03:27 | Informe spam
Los siguientes fragmentos de codigo te pueden ser utiles (estan escritos en
C#):

// El siguiente metodo, recibe un SqlConnection de parametro y retorna
// un arreglo string con los procedimientos en esa conexion

private static string[] ObtenerProcedimientosAlmacenados(SqlConnection
sqlCnn) {
// Preparo el comando que recupera los nombres de los procedimientos
SqlCommand sqlCmd = sqlCnn.CreateCommand();
sqlCmd.CommandText = "select name from sysobjects where type='P'";

// Ejecuto el comando
SqlDataReader dr = sqlCmd.ExecuteReader();

// Agrego los nombres en un ArrayList
ArrayList procedimientos = new ArrayList();

while (dr.Read()) {
procedimientos.Add(dr.GetString(0));
}

dr.Close();

// Recupero los nombres de los procedimientos
return (string[]) procedimientos.ToArray(typeof(string));
}



// El siguiente metodo recibe una conexion y un nombre de procedimiento,
recupera
// informacion de sus parametros y los muestra en pantalla

private static void ImprimirProcedimientoAlmacenado(SqlConnection sqlCnn,
string procedimiento) {
// Preparo el comando donde se recuperaran los parametros
SqlCommand sqlCmd = sqlCnn.CreateCommand();
sqlCmd.CommandText = procedimiento;
sqlCmd.CommandType = CommandType.StoredProcedure;

// Recupero la informacion de sus parametros
SqlCommandBuilder.DeriveParameters(sqlCmd);

// Imprimimos la definicion del procedimiento
Console.WriteLine("{0} (", sqlCmd.CommandText);

foreach(SqlParameter sqlParam in sqlCmd.Parameters) {
Console.WriteLine("\t{0}\t{1}{2}\t[{3}]",
sqlParam.ParameterName, sqlParam.SqlDbType,
(sqlParam.Size > 0) ? "(" +
sqlParam.Size.ToString() + ")" : "", sqlParam.Direction);
}
Console.WriteLine(")");
}


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida