hola a todos.
ya entes expuse un pregunta sobre como obtener datos de una tabla. sin saber
en que tabla estan los datos. ya me funciona pero me muestra resultados en
blanco, es decir si lo encuentra en la 4 tabla me muestra que no encontro
nada en la 3 anteriores en mi panel de resultados. ya estuve probando son
Set nocount, pero nadamas no doy en el clavo. les expongo mi consulta para
ver si me pueden auxiliar.
CREATE PROCEDURE [pa_traerdatos]
@campo char(25),
@dato char(25)
AS
SET NOCOUNT On
DECLARE @tabla nvarchar(50)
DECLARE tablas_cursor CURSOR
FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS INF_C1
INNER JOIN (SELECT COLUMN_NAME,COUNT(*) AS CANTIDAD FROM
INFORMATION_SCHEMA.COLUMNS
GROUP BY COLUMN_NAME) INF_C2 ON
INF_C1.COLUMN_NAME = INF_C2.COLUMN_NAME
WHERE INF_C2.CANTIDAD >1 and INF_C2.column_name = @campo ORDER BY
INF_C1.COLUMN_NAME
open tablas_cursor
FETCH NEXT FROM tablas_cursor
INTO @tabla
WHILE @@FETCH_STATUS = 0
BEGIN
declare @sql nvarchar(4000)
set @sql='select tocid from '+ @tabla + ' where referencia = @dato '
exec sp_executesql @sql, N'@dato char(25)',@dato=@dato
IF @@ROWCOUNT = 0
BEGIN
SET NOCOUNT OFF
FETCH NEXT FROM tablas_cursor INTO @TABLA
END
ELSE
BREAK
END
SET NOCOUNT OFF
CLOSE tablas_cursor
DEALLOCATE tablas_cursor
go
gracias de antemano y Saludos.
pd. utilice cursores porque me comentaron que era la única manera.
Alfredo Reyna
Leer las respuestas