Filtrar resultados devueltos por un sp en T-SQL

25/08/2005 - 23:24 por Ricardo Hernández Sáez | Informe spam
Quiero escribir un proc. almacenado que devuelva las funciones (roles)
definidos en una base de datos excluyendo las funciones estandar.

Lo que hago ahora es copiar la definición del procedimiento almacenado
del sistema y modificar su definición añadiendo los criterios de selección
que deseo, e.d., copiar el sp del sistema "sp_helprole" y añadir el criterio

(name Not In ('public'
, 'db_owner'
, 'db_accessadmin'
, 'db_securityadmin'
, 'db_ddladmin'
, 'db_backupoperator'
, 'db_datareader'
, 'db_datawriter'
, 'db_denydatareader'
, 'db_denydatawriter')
)

Lo que me gustaría saber es si puedo evitar esta cuasi-duplicación.
Hacer algo así

Create Procedure sp_Roles
(
@NombreRol sysname = null
)
AS

select * from (exec sphelprole @NombreRol)
 

Leer las respuestas

#1 Maxi
26/08/2005 - 00:46 | Informe spam
Hola, y crear una tabla no te es util?

o sea: podrias hacer que el SP se ponga en una tabla temporal por ej

Create Procedure sp_Roles
(
@NombreRol sysname = null
)
AS
INSERT INTO ##TABLA_TMP
exec sphelprole @NombreRol






Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Ricardo Hernández Sáez" escribió en el mensaje
news:

Quiero escribir un proc. almacenado que devuelva las funciones (roles)
definidos en una base de datos excluyendo las funciones estandar.

Lo que hago ahora es copiar la definición del procedimiento almacenado
del sistema y modificar su definición añadiendo los criterios de selección
que deseo, e.d., copiar el sp del sistema "sp_helprole" y añadir el
criterio

(name Not In ('public'
, 'db_owner'
, 'db_accessadmin'
, 'db_securityadmin'
, 'db_ddladmin'
, 'db_backupoperator'
, 'db_datareader'
, 'db_datawriter'
, 'db_denydatareader'
, 'db_denydatawriter')
)

Lo que me gustaría saber es si puedo evitar esta cuasi-duplicación.
Hacer algo así

Create Procedure sp_Roles
(
@NombreRol sysname = null
)
AS

select * from (exec sphelprole @NombreRol)




Preguntas similares