Obtén nombres de columna de tabla de servidor vinculado de Open Query
Este conjunto de procedimientos almacenados te permitirá ver las columnas disponibles en una tabla para bases de datos Oracle y Progress vinculadas a SQL Server.
Un conjunto simple de procedimientos almacenados que devuelven una lista de columnas de bases de datos Oracle o Progress vinculadas a SQL Server, utilizando SQL dinámico.
La declaración SELECT también se puede utilizar de forma independiente en la aplicación correspondiente.
Oracle
CREATE PROC [dbo].[GetOpenQuery_Oracle_Tables](@LinkServ NVARCHAR(100)) AS BEGINDECLARE @SQL NVARCHAR(MAX)='SELECT * FROM OpenQuery('+@LinkServ+', ''SELECT * FROM user_tables ORDER BY TABLE_NAME'')'PRINT @SQLEXEC sp_executesql @SQLENDGO
Progress
CREATE PROC [dbo].[GetOpenQuery_Progress_Tables](@LinkServ NVARCHAR(100)) AS BEGINDECLARE @SQL NVARCHAR(MAX)='SELECT * FROM OpenQuery('+@LinkServ+', ''SELECT * FROM sysprogress.SYSTABLES WHERE CREATOR = ''''PUB''''AND ID >= 0 ORDER BY TBL'')'PRINT @SQLEXEC sp_executesql @SQLENDGO
Correr el código
Para ejecutarlos basta con correr el procedimiento almacenado apropiado con el nombre del servidor vinculado.
EXEC GetOpenQuery_Oracle_Tables 'Server_Name'EXEC GetOpenQuery_Progress_Tables 'Server_Name'