instruccion ejemplo create sql ms-access

sql - ejemplo - Creación de tabla DDL desde Microsoft Access



instruccion create table (6)

¿Hay alguna manera fácil de recuperar DDL de creación de tablas de Microsoft Access (2007) o tengo que codificarlo usando VBA para leer la estructura de la tabla?

Tengo alrededor de 30 tablas que estamos migrando a Oracle y facilitaría la vida si pudiéramos crear las tablas a partir de las definiciones de acceso.


Es posible que desee buscar en ADOX para obtener la información del esquema. Usando ADOX puedes obtener cosas como las teclas, vistas, relaciones, etc.

Lamentablemente, no soy un programador de VB, pero hay muchos ejemplos en la web que usan ADOX para obtener el esquema de la tabla.


Gracias por las otras sugerencias. Mientras esperaba, escribí algunos códigos VBA para hacerlo. No es perfecto, pero hizo el trabajo por mí.

Option Compare Database Public Function TableCreateDDL(TableDef As TableDef) As String Dim fldDef As Field Dim FieldIndex As Integer Dim fldName As String, fldDataInfo As String Dim DDL As String Dim TableName As String TableName = TableDef.Name TableName = Replace(TableName, " ", "_") DDL = "create table " & TableName & "(" & vbCrLf With TableDef For FieldIndex = 0 To .Fields.Count - 1 Set fldDef = .Fields(FieldIndex) With fldDef fldName = .Name fldName = Replace(fldName, " ", "_") Select Case .Type Case dbBoolean fldDataInfo = "nvarchar2" Case dbByte fldDataInfo = "number" Case dbInteger fldDataInfo = "number" Case dbLong fldDataInfo = "number" Case dbCurrency fldDataInfo = "number" Case dbSingle fldDataInfo = "number" Case dbDouble fldDataInfo = "number" Case dbDate fldDataInfo = "date" Case dbText fldDataInfo = "nvarchar2(" & Format$(.Size) & ")" Case dbLongBinary fldDataInfo = "****" Case dbMemo fldDataInfo = "****" Case dbGUID fldDataInfo = "nvarchar2(16)" End Select End With If FieldIndex > 0 Then DDL = DDL & ", " & vbCrLf End If DDL = DDL & " " & fldName & " " & fldDataInfo Next FieldIndex End With DDL = DDL & ");" TableCreateDDL = DDL End Function Sub ExportAllTableCreateDDL() Dim lTbl As Long Dim dBase As Database Dim Handle As Integer Set dBase = CurrentDb Handle = FreeFile Open "c:/export/TableCreateDDL.txt" For Output Access Write As #Handle For lTbl = 0 To dBase.TableDefs.Count - 1 ''If the table name is a temporary or system table then ignore it If Left(dBase.TableDefs(lTbl).Name, 1) = "~" Or _ Left(dBase.TableDefs(lTbl).Name, 4) = "MSYS" Then ''~ indicates a temporary table ''MSYS indicates a system level table Else Print #Handle, TableCreateDDL(dBase.TableDefs(lTbl)) End If Next lTbl Close Handle Set dBase = Nothing End Sub

Nunca dije ser el programador de VB.


He hecho esto:

Hay una herramienta para "mejorar" de Access to SQL Server. Haga eso, luego use las excelentes herramientas de SQL Server para generar el script.

http://support.microsoft.com/kb/237980


Puede usar la función de exportación en Access para exportar tablas a una fuente de datos ODBC. Configure una fuente de datos ODBC en la base de datos Oracle y luego haga clic con el botón derecho en la tabla en la pestaña "Tablas" de acceso y elija exportar. ODBC es uno de los "formatos de archivo"; luego mostrará el cuadro de diálogo ODBC habitual.


Use el SQL Workbench Migration Workbench de Oracle.

Hay un tutorial completo sobre la conversión de bases de datos de Access a Oracle disponible aquí . Si solo buscas las estructuras que buscas, entonces puedes concentrarte en la sección 3.0.


Un poco tarde para la fiesta, pero utilizo RazorSQL para generar bases de datos de DDL for Access.