Tablas a considerar:
- Codigos_Seg_Columnas_Sistema: almacena TODO EL UNIVERSO de columnas que pueden usarse dentro del sistema. NO PUEDEN REPETIRSE LOS REGISTROS. PK -> datafield. Si la columna del listado/DataTable/Pivot no existe, cargar en esta tabla.
- Codigos_Query_Columnas: almacena todas las columnas que devuelve un SP utilizado para DataTable. La llenamos con el siguiente query (ejecutar CADA VEZ QUE SE CREA UN DATATABLE CON S.P.):
declare @query_id int
set @query_id = id del datatable
SELECT * INTO #temp1
FROM OPENROWSET(‘SQLNCLI’, ‘Server=bg-srv07;uid=sa;pwd=base321+’,
‘EXEC DATOS_DESA.[dbo].[nombre de SP]’);/*
SELECT * FROM tempdb.sys.columns
WHERE object_id=object_id(‘tempdb..#temp1’)
GO
*/insert into Codigos_Query_Columnas(Query_Id,Tabla_Id,Columna_Id,Alias,Orden,Agrupar,Sumar,Contar,OrdenAgrupar,dt_lastupdate,vc_updateuser)
SELECT @query_id, ‘nombre de sp‘, name, name, column_id*10, 0,0,0,0, getdate(), ‘system’ FROM tempdb.sys.columns
WHERE object_id=object_id(‘tempdb..#temp1’) and name not in (‘_state’,’_state_code’,’_state_color’,’_state_text’,’_tags’)DROP TABLE #temp1
select * from Codigos_Query_Columnas where Query_Id = @query_id order by orden asc
–delete Codigos_Query_Columnas where Query_Id = @query_id
- ATENCIÓN: SI EN EL LISTADO/DATATABLE O PIVOT LA COLUMNA SE MUESTRA VACÍA SIGNIFICA QUE NO EXISTE EN LA TABLA [CODIGOS_SEG_COLUMNAS_SISTEMA], sino preguntar a LPERDOMO.
Leave a Reply