COPY STRUCTURE EXTENDED (Comando)

Crea una nueva tabla con campos que contienen la estructura de la tabla seleccionada actualmente.

COPY STRUCTURE EXTENDED TO FileName   
[DATABASE DatabaseName [NAME LongTableName]]   [FIELDS FieldList]

Parámetros

  • FileName
    Especifica la tabla nueva que se va a crear.
  • DATABASE DatabaseName
    Especifica una base de datos a la que se agregará la nueva tabla.
  • NAME LongTableName
    Especifica un nombre largo para la nueva tabla. Los nombres largos pueden contener un máximo de 128 caracteres y se pueden utilizar en lugar de nombres cortos de archivo en la base de datos.
  • FIELDS FieldList
    Especifica que solamente se incluyan en un registro de la nueva tabla los campos especificados en FieldList. Si omite FIELDS FieldList, todos los campos tendrán un registro en la nueva tabla.

Observaciones

La información acerca de cada campo de la tabla seleccionada actualmente se copia a un registro de la nueva tabla. La estructura de la nueva tabla es fija en cuanto a formato y consta de dieciséis campos. En la tabla siguiente se muestran los nombres de los 16 campos y su contenido.

Campo Tipo de campo Contenido
FIELD_NAME Character Nombres de campo de la tabla seleccionada (hasta 128 caracteres)
FIELD_TYPE Character Tipos de campo:C = CharacterY = CurrencyN = NumericF = FloatI = IntegerB = DoubleD = DateT = DateTimeL = LogicalM = MemoG = General
FIELD_LEN Numeric Ancho del campo
FIELD_DEC Numeric Número de decimales en campos numéricos
FIELD_NULL Logical Compatibilidad del campo con valores nulos
FIELD_NOCP Logical Conversión de página de códigos no permitida (solamente campos Character y Memo)
FIELD_DEFA Memo Valores predeterminados del campo
FIELD_RULE Memo Reglas de validación del campo
FIELD_ERR Memo Texto de validación del campo
TABLE_RULE Memo Regla de validación de tabla
TABLE_ERR Memo Texto de validación de la tabla
TABLE_NAME Character Nombre largo de tabla (sólo para el primer registro)
INS_TRIG Memo Expresión del desencadenador Insert (sólo para el primer registro)
UPD_TRIG Memo Expresión del desencadenador Update (sólo para el primer registro)
DEL_TRIG Memo Expresión del desencadenador Delete (sólo para el primer registro)
TABLE_CMT Memo Comentarios de tabla (sólo para el primer registro)

Puede modificar la tabla recién creada y luego usar CREATE FROM para crear una nueva tabla con otra estructura diferente. COPY STRUCTURE y CREATE FROM permiten cambiar mediante programación la estructura de una tabla.

El ancho del campo FIELD_NAME es de 10 caracteres en versiones anteriores de Visual FoxPro, FoxPro para Windows y FoxPro para MS-DOS. Para utilizar CREATE FROM con una tabla creada mediante COPY STRUCTURE EXTENDED en Visual FoxPro 5.0 y anteriores, es necesario que cambie el ancho del campo FIELD_NAME a 10 caracteres. Observe que algunos tipos de campos no son compatibles con Visual FoxPro 3.0 y las versiones anteriores.

Ejemplo

El ejemplo siguiente muestra la estructura de la tabla orders, copia la estructura extendida a una tabla temp, explora temp, crea una tabla backup a partir de temp y muestra la estructura de backup.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE orders  && Opens Orders table
CLEAR
DISPLAY STRUCTURE

WAIT WINDOW 'Structure of the orders table' NOWAIT
COPY STRUCTURE EXTENDED TO temp
USE temp
WAIT WINDOW 'The temp table - 1 row per field in orders' NOWAIT
BROWSE
CREATE backup FROM temp
USE backup
DISPLAY STRUCTURE
WAIT WINDOW 'Backup.dbf has the same structure as orders' NOWAIT
USE
DELETE FILE temp.dbf
DELETE FILE backup.dbf

Vea también

AFIELDS( ) | CREATE FROM | COPY STRUCTURE (Comando)