SP para executar querys em tabelas

31/05/2007 - 15:40 por Nuno Santos | Informe spam
Holá grupo, estoy con un problemilla, como puedo hacer para ejecutar una
série de querys que estan guardadas en una tabla de mi BD, esto es la SP que
estoy tentando hacer:

CREATE PROCEDURE GetListaValidacoes
@tabela as varchar(50),
)AS


DECLARE @query AS varchar(4000)
SET @query =''

DECLARE @numreg AS int
SET @numreg=0

BEGIN TRAN

DECLARE DEST_cursor1 CURSOR FOR
SELECT Query FROM miTabla WHERE tabela=@tabela

OPEN DEST_cursor1
if (@@error<>0) goto ERROR

FETCH NEXT FROM DEST_cursor1 INTO @query

WHILE (@@FETCH_STATUS <> -1)
BEGIN
EXEC (@query)
IF @numreg=0 /* como tener este valor preenchido en la ejecución de la
query???? */
BEGIN
FETCH NEXT FROM DEST_cursor1 INTO @query
end
ELSE
begin
PRINT @numreg
BREAK
end
end

ERROR:
IF Cursor_Status('local','DEST_cursor1') <> -1
BEGIN
CLOSE DEST_cursor1
DEALLOCATE DEST_cursor1
END
ROLLBACK
RETURN -1
GO

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
31/05/2007 - 18:33 | Informe spam
Cuál es el problema exacto ?

Para saber la cantidad de filas afectadas, usa @@ROWCOUNT


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Nuno Santos" wrote:

Mostrar la cita
#2 Nuno Santos
31/05/2007 - 19:54 | Informe spam
Gracias por responder,
Lo que quiero saber es la cantidad de registros que me dá la query. La
query que está guardad en la tabla es siempre del tipo :
SELECT COUNT(*) as NumRegistros From miTabla WHERE

NS

"Gustavo Larriera (MVP)"
wrote in message news:
Mostrar la cita
#3 Gustavo Larriera (MVP)
31/05/2007 - 20:06 | Informe spam
Entiendo que querés ejecutar dinámicamente una query y obtener el valor
resultante que la query calcula.

Para eso usa sp_executesql en vez de EXEC. Proporciona los parámetros de
tipo OUTPUT apropiados para obtener el valor resultado. Esto es un ejemplo
tomado del artículo que menciono más abajo:

DECLARE @sql nvarchar(4000), -- nvarchar(MAX) en SQL 2005.
@col sysname,
@min varchar(20)
SELECT @col = N'au_fname'
SELECT @sql = N'SELECT @min = convert(varchar(20), MIN(' + @col +
N')) FROM authors'
EXEC sp_executesql @sql, N'@min varchar(20) OUTPUT', @min OUTPUT
SELECT @min

Podés aprender los detalles en este artículo de Erland Sommarskog:

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Nuno Santos" wrote:

Mostrar la cita
#4 Nuno Santos
01/06/2007 - 09:56 | Informe spam
Ok muchas gracias lo voy a revisar y testar en mi ejemplo :)

NS

"Gustavo Larriera (MVP)"
wrote in message news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida