-- SELECT * FROM syscolumns WHERE ID = 738101670
--EXEC SYS_TABLA_FICHERO_FMT 'A_MIDAS_COMPLEJOS_PEDIDOS'
CREATE PROCEDURE PROC_SYS_TABLA_FICHERO_FMT
@TABLA VARCHAR(100)
AS
DECLARE @nColumnas INT
DECLARE @iCOLUMNA INT
DECLARE @ID_TABLA INT
--DECLARE @TABLA CHAR(200)
DECLARE @VERSION CHAR(5)
DECLARE @sFILA VARCHAR(500)
DECLARE @SEPARADOR CHAR(5)
-- *********** VARIABLES PARA LOS CAMPOS DE LA TABLA
DECLARE @CAMPO CHAR(150)
DECLARE @LONGITUD INT
SELECT @VERSION = '8.0'
--SELECT @TABLA = 'A_MIDAS_COMPLEJOS_PEDIDOS'
SELECT @ID_TABLA = id FROM sysobjects WHERE name = @TABLA
SELECT @nColumnas = COUNT(*) FROM SysColumns WHERE id = @ID_TABLA
--PRINT @ID_TABLA
PRINT @VERSION
PRINT @nColumnas
-- ******************** CURSOR PARA RECORRER LOS CAMPOS
DECLARE RS CURSOR
FOR SELECT Name,LENGTH FROM SysColumns WHERE ID = @ID_TABLA
OPEN RS
SELECT @iCOLUMNA = 1
FETCH NEXT FROM RS
INTO @CAMPO,@LONGITUD;
WHILE @@FETCH_STATUS = 0
BEGIN
IF @iCOLUMNA = @nColumnas SELECT @SEPARADOR = '"\n"' ELSE SELECT @SEPARADOR = '"\t"'
SELECT @sFILA = LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
SELECT @sFILA = @sFILA + 'SQLCHAR' + CHAR(9)
SELECT @sFILA = @sFILA + '0' + CHAR(9)
SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@LONGITUD))) + CHAR(9)
SELECT @sFILA = @sFILA + @SEPARADOR + CHAR(9)
SELECT @sFILA = @sFILA + LTRIM(RTRIM(CONVERT(CHAR,@iCOLUMNA))) + CHAR(9)
SELECT @sFILA = @sFILA + LTRIM(RTRIM(@CAMPO)) + CHAR(9)
SELECT @sFILA = @sFILA + 'Modern_Spanish_CI_AS'
PRINT @sFILA
--PRINT CONVERT(CHAR,@iCOLUMNA) + CHAR(9) + 'SQLCHAR' 0 50 "\t" 1 CODIGO Modern_Spanish_CI_AS
SELECT @iCOLUMNA = @iCOLUMNA + 1
FETCH NEXT FROM RS
INTO @CAMPO,@LONGITUD;
END
CLOSE RS;
DEALLOCATE RS;
Comments